javaScript
바인딩이란? bind()
mooyou
2024. 12. 18. 19:25
728x90
300x250
바인딩은 this를 특정 객체에 고정시키는 작업을 말한다.
JavaScript에서는 bind 메서드를 사용해서 바인딩할 수 있다.
예시
function sayHello() {
console.log(this.name);
}
const obj = { name: "React" };
const boundSayHello = sayHello.bind(obj); // obj와 바인딩
boundSayHello(); // "React"
여기서 sayHello.bind(obj)는 sayHello 함수의 this를 항상 obj로 고정시킨다.
이제 boundSayHello를 호출하면 this는 항상 obj를 가리킨다.
상황과 위치에 따른 this값
일반 함수에서 this | window 객체 |
중첩 함수에서 this | window 객체 |
이벤트에서의 this | 이벤트를 발생시킨 객체 |
메서드 에서의 this | 메서드를 호출한 객체 |
메서드 내부의 중첩함수에서 this | window 객체 |
이렇게 this는 위치에 상황에 따라 가리키는 것이 달라지게 된다.
그래서 bind 함수를 이용해서 this값을 고정시켜주는 것이다.
과거에 bind 메소드에 대한 포스팅 참고
https://moo-you.tistory.com/571
화살표 함수에 대한 포스팅 참고
https://moo-you.tistory.com/489
728x90
반응형