JavaScript 함수 Call

메서드 재사용

를 사용하여 call() 메서드를 작성할 수 있습니다. 이 메서드는 다른 객체에서도 사용할 수 있습니다.

함수는 객체 메서드

JavaScript에서 함수는 객체의 메서드입니다.

함수가 JavaScript 객체의 메서드가 아니면, 전체 객체의 함수입니다(이전 장을 참조).

아래의 예제는 세 개의 속성을 가진 객체를 생성합니다(firstNamelastNamefullName)。

실례

var person = {
    firstName:"Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
person.fullName();		// "Bill Gates"를 반환합니다.

직접 시도해보세요

fullName 속성은메서드입니다. person 객체는 이 메서드의소유자

fullName 속성은 person 객체의 메서드

JavaScript call() 메서드

call() 메서드는 предопределенные JavaScript 메서드입니다.

소유자 객체로서의 메서드를 호출할 수 있습니다.

을 통해 call()다른 객체의 메서드를 사용할 수 있습니다.

이 예제에서 person의 fullName 메서드를 호출하고 person1에 사용합니다:

실례

var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName:"Bill",
    lastName: "Gates",
}
var person2 = {
    firstName:"Steve",
    lastName: "Jobs",
}
person.fullName.call(person1);  // "Bill Gates"를 반환합니다.

직접 시도해보세요

이 예제에서 person의 fullName 메서드를 호출하고 person2에 사용합니다:

실례

var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName:"Bill",
    lastName: "Gates",
}
var person2 = {
    firstName:"Steve",
    lastName: "Jobs",
}
person.fullName.call(person2);  // "Steve Jobs"를 반환합니다

직접 시도해보세요

매개변수가 포함된 call() 메서드

call() 메서드는 다음과 같은 매개변수를 받을 수 있습니다:

실례

var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:"Bill",
  lastName: "Gates"
}
person.fullName.call(person1, "Seattle", "USA");

직접 시도해보세요