함수 프로퍼티, 메서드, 생성자

8.7.4 bind()메서드

함수(f)에 bind()메서드를 호출하면서 객체(o)를 전달하면, bind()메서드는 새로운 함수를 반환한다(3번째줄). 반환된 새 함수를 호출하면, 원래 함수(f)가 전달된 객체(o)의 메서드로 호출된다. 새로운함수(f.bind(o)(x)o.f(x)처럼 작동한다.)에 전달한 모든 인자(2)는 원래 함수에도 전달된다.

function f(y) {return this.x + y}; //바인드 되어야 하는 함수
var o = {x:1};                     //바인드될 객체
var g = f.bind(o);                 //g(x)를 호출하면 o.f(x)가 호출된다. ==> 새로운 함수를 반환한다.
g(2);                              // ==> 3

내가 만든 실습

var o = {
    "apple" : function(x){return arguments[0];}
}

function f(y){return this.apple(y)*2;}
var g = f.bind(o);
g(2); // ==> 4

results matching ""

    No results matching ""