본문 바로가기

자바스크립트/메소드

자바스크립트 bind 메소드

1. 인자를 지정해주기

 

function add(a, b) {
    return a + b;
}

 

// add 함수에서 첫 번째 인자를 1로 고정시킨 함수를 반환한다.
let add1 = add.bind(null, 1);

add1(2); // 고정된 1과 인자로 들어간 2가 더해져 3을 반환한다.

 

2. this를 지정해주기

 

function getThis() {
    return this;
}

 

// getThis 함수에서 this로 참조하는 값을 []로 하는 함수를 반환한다.

let getArray = getThis.bind([]);

 

getArray(); // this로 지정된 []를 반환한다.

 

3. setTimeout 예제

 

function Message() {
    this.firstMessage = function() {
        console.log('Hello');
    }
}
let obj = new Message();
// 3초뒤에 첫번째 인자의 함수 실행
setTimeout(obj.firstMessage.bind(obj), 3000);
// setTimeout에 들어갈 때 this는 window 객체를 가리키게 되는데
// 모든 메소드에 들어 있는 bind 메소드를 써야 
// 함수 안에서 this를 사용할 때 객체를 정확히 가리킬 수 있다.