레이블이 Method인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Method인 게시물을 표시합니다. 모든 게시물 표시

2014년 3월 11일 화요일

Method - valueOf()

valueOf() 메서드는 toString() 메서드와 매우 유사하다. 이 메서드는 자바스크립트가 객체를 문자열이 아니라 숫자 같은 다른 기본 기본 타입으로 변환하려 할 때 호출된다. 즉, 객체가 기본 타입 값을 필요로 하는 문맥 안에서 사용될 떄, 자바스크립트는 valueOf() 메서드를 자동으로 호출한다. Object클래스가 기본으로 제공하는 valueOf() 메서드는 이러한 변환 작업을 행하지 않는다. 하지만 자바스크립트의 몇몇 내장 객체들은 자신만의 valueOf() 메서드를 정의하고 있다.

Method - toString()

toString() 메서드는 별도의 전달인자 없이 호출되며, 메서드를 호출한 객체의 값을 어떤한 방식으로든 표현하는 문자열을 만들어 결과로 반환한다. 자바스크립트는 객체를 문자열로 변환해야 할 때 항상 이 메서드를 사용하는대, 예를 들면 문자열과 객체를 +연산자를 사용하여 연결하려 할 때나, 문자열을 전달인자로 받는 alert()같은 메서드의 인자로 객체를 전달하려 할 때, 객체의 toString() 메서드를 호출하여 이러한 변환작업을 수행한다.

기본으로 주어지는 toString() 메서드가 제공하는 정보는 그다지 유용하지 않다.
예를 들어 다음과 같은 호출은 단순히 "[object Object]"같은 문자열로 평가된다.

var s = { x:1, y:1 }.toString();

이와 같이 기본으로 주어지는 메서드가 그다지 유용한 정보를 제공하지 않다 보니, 많은 클래스가 자신들만의 고유한 toString() 메서드를 정의한다. 예를 들어 배열을 문자열로 변환하면 배열의 각 원소를 문자열로 변환하여 연결한 문자열을 얻을 수 있으며, 함수를 문자열로 변환하면 함수의 소스 코드를 얻을 수 있다.