마지막 비디오에서 우리는 핵심 단어의 값을 결정하기위한 두 번째 규칙을 조사합니다.이 암시 적 규칙은 암시 적 규칙이 키워드가 선언 된 객체 안에있을 때 그 값이 항상 가장 가까운 부모 객체가 될 것이라고 말합니다.
우리가 사용하는 이러한 규칙을 기록하는 한 가지 사실은 JavaScript 사양의 공식 부분이 아니므로 거기에서 찾을 수 없습니다.
이러한 규칙은 핵심 단어의 가치를 추적하는 데 도움이됩니다.
마지막 비디오가 끝날 때 우리는 Say hello 메소드에서 예기치 않게 키워드의 컨텍스트가 변경된 예를 보았습니다.
this라는 키워드가 이제 dog 객체를 참조하기 때문에 first name 속성은 undefined가되었습니다.
그러면 키워드의 값을 명시 적으로 설정하려고 할 때 dog 객체 대신 person 객체가되도록 강제 할 수 있습니다.
이것은 세 번째 규칙이 들어오는 곳입니다.
호출 적용 또는 바인딩 메소드가 표시 될 때마다 키워드를 적용 및 바인딩을 호출하는 첫 번째 매개 변수로 설정하기 때문에 키워드의 값을 쉽게 결정할 수 있습니다.
이 3 가지 방법을 비교하고 대조하기 전에
한 가지 기억해야 할 것은 함수 호출 적용 및 바인딩 또는 문자열 부울 또는 객체와 같은 다른 데이터 유형이 아닌 함수에서만 사용할 수있는 메서드에서만 사용할 수 있다는 것입니다.
우리가 이야기 할 첫 번째 방법은 call 메소드의 첫 번째 인자를 호출하는 것입니다. 키워드의 값을 원하는대로 지정하십시오.
이것은 일반적으로이 ARG라고하며 원하는대로 설정할 수 있습니다.
이 ARG 다음에 나오는 인수는 혼란스러운 소리 내에서 키워드의 컨텍스트를 변경하는 함수에 전달하려는 매개 변수이지만, 예를 볼 때 더 이해할 수 있습니다.
함수는 무한 수의 인수를 가질 수 있기 때문에 호출을 사용할 때 쉼표로 각 함수를 구분합니다.
마지막으로, 함수가 즉시 호출되는 함수에서 호출 메소드가 사용될 때.
이제 음모로 넘어 갑시다.
적용은 호출과 거의 동일합니다. 다만 적용은 우리가 핵심 단어의 값을 원하기 만하면되는 것처럼 처음에는 대부분 두 개의 매개 변수를 취합니다.
우리는 이것을 ARG라고 부릅니다.
두 번째는 우리가 this 키워드의 값을 변경하는 함수에 전달할 인수 배열입니다.
이제 바인드를 살펴 봅시다.
바인딩은 함수를 즉시 호출하는 대신 호출과 거의 동일합니다.
Bind는 함수 정의를 반환합니다.
함수 정의에서 의미하는 바를 간단히 요약 해 보겠습니다.
첫 번째 함수라는 함수를 만들려고하고 hello라는 문자열을 반환 할 것입니다.
만약 내가 함수를 호출하지 않지만 내가 만든 변수를 검사하십시오.
함수 정의가 반환됩니다.
Bind는 this 키워드와 다른 값을 가진 함수를 볼 수 있고 나중에 호출 할 수 있기 때문에 매우 강력한 함수입니다.
Bind는 set timeout과 같은 비동기 코드로 작업 할 때 매우 유용하며 couriering과 같은 고급 프로그래밍 기술을위한 기본 요소입니다.
이 세 가지 메소드를 빠르게 요약 해 보겠습니다. call apply와 bind는 키워드의 값을 명시 적으로 말하기 위해 사용됩니다.
이것은 우리가 참조 할 키워드에 대한 완전한 제어를 원할 때 사용합니다.
따라서 처음 두 규칙보다 우선 순위가 높아지고 apply는 즉시 호출되는 함수를 호출하는 반면 bind는 새로운 함수 정의를 키워드 값과 함께 반환합니다.
이것은 명시 적으로 마지막으로 호출 및 바인딩을 설정합니다.
무한 수의 매개 변수를 제외하고 적용하는 반면 다음 비디오에서는 두 개만 사용합니다.
호출의 예와이를 사용하여 키워드의 값을 명시 적으로 설정할 수있는 방법을 살펴 보겠습니다.