메소드 정의
메소드 는 개체와 연관되어 있는 함수입니다. 일반적인 함수를 정의하는 것과 같은 방법으로 메소드를 정의합니다. 그 후에, 존재하는 개체와 함수를 연관시키기 위해서 다음과 같은 문법을 사용합니다.
object.methodname = function_name
object
는 존재하는 개체중에 하나이고, methodname
은 지금 추가하려는 메소드 이름이며, function_name
은 함수 이름입니다.
이제 우리는 개체의 메소드를 호출할 때 다음과 같이 할 수 있습니다.
object.methodname(params);
개체 생성자 함수에 메소드 정의를 포함시켜서 개체 타입에 대한 메소드를 정의할 수 있습니다. 예를 들어, 미리 정의된 car 개체의 속성을 출력해주는 함수를 정의할 수 있습니다.
function displayCar() { var result = "A Beautiful " + this.year + " " + this.make + " " + this.model; pretty_print(result); }
pretty_print
는 가로선과 문자열을 출력하는 함수입니다. 이 메소드가 포함된 개체를 참조하기 위해서 this
를 사용하고 있다는 것을 주의해서 보십시오.
아래 문장을 개체 정의에 추가함으로써 이 함수를 car의 메소드로 만들 수 있습니다.
this.displayCar = displayCar;
그러므로 car
개체의 완벽한 정의는 아래와 같은 모습이 될 것입니다.
function car(make, model, year, owner) { this.make = make; this.model = model; this.year = year; this.owner = owner; this.displayCar = displayCar; }
그러면 우리는 모든 car 개체에 대해서 이런 식으로 displayCar
메소드를 호출할 수 있게됩니다.
car1.displayCar() car2.displayCar()
이 코드는 다음 그림과 같은 내용을 만들어냅니다.
그림 7.1: 메소드 출력 결과