티스토리 뷰

javascript에 보면 prototype이라는 것이 있다 과연 이것은 언제 사용 하는 것일까?
이미 아시는 분들은 다들 아실 테지만 모르시는 분들을 위해 간략하게 끄적여 볼려구 한다.

나는 주로 객체 확장용으로 사용하거나 새로은 객체를 만들기 위해 사용한다.
예를 들어 javascript에는 String이라는 객체가 있다.
String의 값을 앞뒤 공백을 제거 하기 위해 보통의 경우에는 trim 함수를 만들어 사용 했을 것이다.

function trim(str)
{
	str = str.replace(/(^\s*)/g, "");
	return str.replace(/(\s*$)/g, "");
}

위와 같이 함수를 만들어서 사용할수도 있지만 prototype를 이용하여 String 객체에 trim함수를 추가 할수도 있다.

String.prototype.ltrim = function()
{
	return this.replace(/(^\s*)/g, "");
}

String.prototype.rtrim = function()
{
	return this.replace(/(\s*$)/g, "");
}

String.prototype.trim = function()
{
	return this.ltrim().rtrim();
}

var str = "      가나다        ";
alert(str.trim());

위와 같이 String 객체에 ltrim, rtrim, trim 메소드를 추가하여 사용할 수도 있다.

다음 아래 예제는 prototype을 이용하여 새로은 객체를 생성하는 예제 코드 이다.

// NewObject의 생성자
function NewObject(value1, value2)
{
	this.value1 = value1
	this.value2 = value2
}

// value1, value2의 값을 더하여 반환 하는 함수
NewObject.prototype.sum = function()
{
	return this.value1 + value2
}

var obj = new NewObject(10, 20);
alert(obj.sum()); // 30이 반환 된다.
댓글
댓글쓰기 폼