자바스크립트

this 바인딩

devjones 2022. 1. 9. 18:59

메소드내부에서의 this.

 

-> this는 자신을 호출한 객체에 바인딩.

 

 

함수호출시 this 바인딩

-> 전역객체에 바인딩

-> 내부함수 역시 함수. 따라서 this는 전역 객체에 바인딩.

-> 내부함수에서 this바인딩: var that = this;

-> 제이쿼리에서, bind 메소드를 통해 사용자가 원하는 객체를 this에 바인딩할 수 있는 기능제공

 

생성자 함수 호출시 this 바인딩

var Person = function(name) {
    this.name = name;
};

var foo = new Person('foo');
console.log(foo.name);	// foo

 

call과 apply 메소드를 이용한 명시적인 this 바인딩

apply메소드의 첫번째 인자에 this가 바인딩된다.

call메소드는 기능은 같으나 형식이 다르다.

Person.call(foo, 'foo', 30, 'man');