유지의 개념과 항소, 적용 및 유지의 차이점

바인딩이란 무엇입니까?

각 JavaScript 함수는 고유한 this를 정의합니다. 예를 들어, 자기 소개하는 함수를 만들기 위해 say()라는 함수를 만든다고 가정해 봅시다.

const say = function() {
  console.log(this); // 여기서 this는 뭘까?
  console.log("Hello, my name is " + this.name);
};

say();

당신이 걸을 때


창 개체가 표시됩니다. 원래 그건 창문이기 때문입니다. 사실 정말 어렵다. 윈도우라고 밖에 할 수 없습니다. 이는 객체의 내부에 따라 객체 메서드 호출 시점, 생성자 new 호출 시점, 명시적 바인딩 발생 시점에 따라 달라지기 때문이다.

적어도 우리는 말하기 기능에서 창 개체를 사용하고 싶지 않습니다. 다시 말해서, 이때 적절한 오브젝트로 변경하면 그 값에 따라 인사말이 실행됩니다. 이것이 이것의 구속입니다. 위 명시적으로 이를 Window 이외의 객체로 변경하는 기능은 call, apply, bind 입니다.

전화해서 신청하세요

물론 say 함수의 this를 변경하려면 이를 대체할 객체가 있어야 합니다. 다음과 같이 보이도록 코드를 약간 수정했습니다.


전화해 apply는 함수를 호출하는 함수입니다. 하지만 그냥 하지마 다음과 같이 설정하려는 객체를 전달하십시오. 이것을 변경하고 실행하십시오.

첫 번째 주자 say(“soul”)의 경우, say가 실행될 때 설정이 없기 때문에 윈도우 객체입니다.

두 번째 주자 say.call(obj, “서울”)의 경우; 그리고 세 번째 버전 say.apply(obj, (“seoul”)) 원하는 값이 나타나도록 이것을 obj로 변경합니다.

invoke와 apply의 유일한 차이점은 첫 번째 인수(이를 대체하는 값)를 제외하고 실제로 말하는 데 필요한 매개변수를 전달하는 방법입니다. 호출과 달리 적용 함수는 전체 두 번째 인수를 배열에 넣어야 합니다.

묶다


바인딩 기능 경제적 지원, 아무런 기능도 수행하지 않는다는 점에서 적용과 다릅니다. 대신 바인딩된 함수가 반환됩니다. 이 바운드 함수(boundSay)는 지금부터 이것을 obj로 가지므로 나중에 사용할 수 있습니다. 바인드에 사용되는 나머지 매개변수는 호출 및 적용과 동일합니다.

원천

https://wooooooak.github.io/javascript/2018/12/08/call,apply,bind/

바인딩의 개념과 call, apply, bind pleasure 코딩의 차이점

바인딩의 개념과 호출, 적용 및 바인딩의 차이점 2018-08-12 | Javascript Basic 이 es6 바인딩이란 무엇입니까? 프로젝트 경험이 거의 없었을 때는 헌신이라는 단어도 이해하지 못했습니다. 호출, 앱 자바스크립트 기초

wooooak.github.io

참조