JavaScript 함수 Apply
- 이전 페이지 JS 함수 Call
- 다음 페이지 JS 함수 바인딩
재사용
메서드를 통해 apply()
메서드를 통해 다른 객체에 대한 메서드를 작성할 수 있습니다.
JavaScript apply() 메서드
apply()
메서드는 call()
메서드는 매우 유사합니다:
이 예제에서는person
의 fullName
메서드는적용부터 person1
:
예제
var person = { fullName: function() { return this.firstName + " " + this.lastName; } } var person1 = { firstName: "Bill", lastName: "Gates", } person.fullName.apply(person1); // "Bill Gates"를 반환합니다
call()와 apply()의 차이
차이점은:
call()
메서드는 각각의 매개변수를 받습니다.
apply()
메서드는 배열 형태의 매개변수를 받습니다.
배열 대신 매개변수 목록을 사용하려면 apply()
매서드는 매우 편리합니다.
매개변수를 가진 apply() 메서드
apply()
메서드는 배열의 매개변수를 받습니다:
예제
var person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; } } var person1 = { firstName:"Bill", lastName: "Gates" } person.fullName.apply(person1, ["Oslo", "Norway"]);
와 call()
메서드 비교:
예제
var person = { fullName: function(city, country) { return this.firstName + " " + this.lastName + "," + city + "," + country; } } var person1 = { firstName:"Bill", lastName: "Gates" } person.fullName.call(person1, "Oslo", "Norway");
배열에서 max 메서드를 모의합니다
사용할 수 있습니다 Math.max()
메서드는(숫자 목록의)최대 숫자를 찾습니다:
예제
Math.max(1,2,3); // 3을 반환합니다
JavaScript 배열이 max() 메서드를 가지고 있지 않기 때문에, 다음과 같이 적용할 수 있습니다: Math.max()
메서드
예제
Math.max.apply(null, [1,2,3]); // 3도 반환됩니다
첫 번째 매개변수(null)은 중요하지 않습니다. 이 예제에서는 사용하지 않습니다.
이 예제들은 같은 결과를 주게 됩니다:
예제
Math.max.apply(Math, [1,2,3]); // 3도 반환됩니다
예제
Math.max.apply(" ", [1,2,3]); // 3도 반환됩니다
예제
Math.max.apply(0, [1,2,3]); // 3도 반환됩니다
JavaScript strict 모드
JavaScript strict 모드에서, 만약 apply()
메서드의 첫 번째 매개변수가 객체가 아니면, 그것은 호출된 함수의 소유자(객체)가 됩니다. '비정확' 모드에서는 전체 객체가 됩니다.
- 이전 페이지 JS 함수 Call
- 다음 페이지 JS 함수 바인딩