Articles

Javascript 전화:()적용()및 bind()

call()을 적용()및 bind()—새로운 희망

지금까지 우리가 처리 함수 개체로 구성된 이름의(선택할 수도 있습 익명의 기능)및 코드를 실행하는 경우 이 호출됩니다. 그러나 그것은 전체 진실이 아닙니다. 진리를 사랑하는 사람으로서,나는 함수가 실제로 다음 이미지에 더 가깝게 보인다는 것을 알려야합니다:

이 무엇입니까??????? 걱정하지 마세요! 이제 예제와 함께 모든 기능에 나타나는이 3 가지 유사한 방법을 살펴볼 것입니다. 기뻐하십시오!

바인딩()

공식 문서를 말한다:bind()this키워드를 설정하여 제공되는 값입니다. (실제로는 더 많은 것들에 대해 이야기하지만,우리는 다른 시간 동안 그것을 남겨 둘 것입니다 :))

이것은 매우 강력합니다. 함수를 호출 할 때this의 값을 명시 적으로 정의합시다. 보자 cooooode:

를 사용하는bind() method on line 14.

를 분석해 보자. 때 우리가 사용하는bind()방법:

  1. JS 엔진 새로 만드는pokemonNamepokemonthisvariable. 그것이 pokemonName 기능을 복사한다는 것을 이해하는 것이 중요합니다.
  2. 후 복사본을 만들의pokemonNamelogPokemon(),아니었지만에 포켓몬이 처음 개체. 이제 속성(Pika 및 Chu)과 그 방법을 인식합니다.

그리고 멋진 점은 값을 bind()한 후에 다른 정상적인 함수 인 것처럼 함수를 사용할 수 있다는 것입니다. 매개 변수를 수락하도록 함수를 업데이트하고 다음과 같이 전달할 수도 있습니다:

call()을 적용()

공식 문서에 대한 통화()말: call()this값을 인수를 제공합니다.

,무엇을 의미하는 것은 우리가 할 수 있는 호출의 모든 기능,그리고 명시적으로 지정할thisbind()방법과 비슷합니다! 이것은 확실히 해키 코드를 작성에서 우리를 절약 할 수 있습니다(비록 우리 모두가 여전히 hackerzzz 임에도 불구하고).

사이의 주요 차이점은bind()call()call()방법:

  1. 지 추가적인 매개변수뿐만 아니라
  2. 실행하는 기능을 요청했습니다.
  3. call()메서드는 호출되는 함수의 복사본을 만들지 않습니다.

call()apply()는 동일한 목적을 수행합니다. 유일한 차이점은 그들이 어떻게 작동되는 통화()가 예상하는 모든 매개 변수를 전달에서 개별적으로 하는 반면에 적용()기대하는 편안의 우리의 모든 매개 변수입니다. Example:

통에 적용되는지와 배열을,그리고 전화를 기대하고 각 param 습니다.

모든 JS 함수에 존재하는 메소드가 내장되어 매우 유용 할 수 있습니다. 하지 않는 경우에도 끝까지 사용하여 그들의 하루 하루의 프로그래밍,당신은 여전히 그것으로 실행하면 종종을 읽을 때 다른 사람의 코드입니다.

궁금한 점이 있으면 언제나처럼 Instagram 을 통해 손을 뻗으십시오.❤