바인딩은 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
[javaScript] bind 메소드
bind bind() 메소드는 호출될 때 this 키워드가 제공된 값으로 설정되는 새로운 함수를 반환한다. syntax bind(thisArg, arg1, ... , argN) thisArg : this가 가리킬 객체를 지정 arg1, ... , argN : 함수에 전달할 인자
moo-you.tistory.com
화살표 함수에 대한 포스팅 참고
https://moo-you.tistory.com/489
화살표 함수 Arrow Function () =>
Arrow Function 화살표 함수는 ES6문법으로 function을 대신해서 함수를 간략히 정의 할 수 있고 this를 묶는게 가능합니다. Syntax (매개변수) => {처리내용} function List() { 처리내용 } 이런식으의 function 함
moo-you.tistory.com
'javaScript' 카테고리의 다른 글
전개 연산자 (...) 하나로 객체/배열 조작 끝내기! (0) | 2025.01.24 |
---|---|
자바스크립트의 Truthy와 Falsy (0) | 2025.01.11 |
Pure함수 Impure함수 개념이해 (0) | 2024.11.04 |
콘솔창에서 자바스크립트 사용하기 (1) | 2024.06.04 |
jquery-validation (0) | 2024.05.26 |
댓글