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

 

[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

 

728x90
반응형