본문으로 바로가기

bind()와 this

category JavaScript/this 키워드 2016. 10. 4. 08:56

bind 메소드

함수를 호출하면 바로 실행되지만 bind 메소드는 Function 객체를 생성하여 반환한다.

bind 메소드는 새로운 Function 객체를 생성하는 단계와 생성한 Function 객체를 함수로 호출하는 단계로 나뉘어진다. 


그리고 ES5에서 지원한다.

첫번째 파라미터에 bind 메소드로 생성한 Function 객체를 함수로 호출할 때 this로 참조할 오브젝트를 지정한다.


만약 지정하지 않는다면 글로벌 객체로 간주한다.

두번째 파라미터에 bind 메소드로 생성한 Function 객체를 함수로 호출할 때 사용할 파라미터를 지정한다.

생성한 Function 객체를 함수로 호출할 때도 파라미터를 지정할 수가 있다.


bind 메소드에 지정한 파라미터와 생성한 Function 객체를 함수로 호출할 때 지정할 때 지정한 파라미터를 병합하여 하나의 파라미터로 사용한다.


javascript
var obj = {
    value : 123,
    get : function() {
        return this.value;
    }
};

console.log(obj.get()) // 123

var fnObj = obj.get.bind({value:456});
console.log(fnObj());



Jaehee's WebClub


'JavaScript > this 키워드' 카테고리의 다른 글

call/apply 가 생성자에서 사용될 경우  (0) 2016.10.04
this 총정리  (0) 2016.10.04
apply()와 this  (0) 2016.10.04
call()과 this  (0) 2016.10.04
this 키워드의 주된 목적(인스턴스 설정)  (0) 2016.10.04