Javascript 전화:()적용()및 bind()
call()을 적용()및 bind()—새로운 희망
지금까지 우리가 처리 함수 개체로 구성된 이름의(선택할 수도 있습 익명의 기능)및 코드를 실행하는 경우 이 호출됩니다. 그러나 그것은 전체 진실이 아닙니다. 진리를 사랑하는 사람으로서,나는 함수가 실제로 다음 이미지에 더 가깝게 보인다는 것을 알려야합니다:
이 무엇입니까??????? 걱정하지 마세요! 이제 예제와 함께 모든 기능에 나타나는이 3 가지 유사한 방법을 살펴볼 것입니다. 기뻐하십시오!
바인딩()
공식 문서를 말한다:bind()
this
키워드를 설정하여 제공되는 값입니다. (실제로는 더 많은 것들에 대해 이야기하지만,우리는 다른 시간 동안 그것을 남겨 둘 것입니다 :))
이것은 매우 강력합니다. 함수를 호출 할 때this
의 값을 명시 적으로 정의합시다. 보자 cooooode:
를 분석해 보자. 때 우리가 사용하는bind()
방법:
- JS 엔진 새로 만드는
pokemonName
pokemon
this
variable. 그것이 pokemonName 기능을 복사한다는 것을 이해하는 것이 중요합니다. - 후 복사본을 만들의
pokemonName
logPokemon()
,아니었지만에 포켓몬이 처음 개체. 이제 속성(Pika 및 Chu)과 그 방법을 인식합니다.
그리고 멋진 점은 값을 bind()한 후에 다른 정상적인 함수 인 것처럼 함수를 사용할 수 있다는 것입니다. 매개 변수를 수락하도록 함수를 업데이트하고 다음과 같이 전달할 수도 있습니다:
call()을 적용()
공식 문서에 대한 통화()말: call()
this
값을 인수를 제공합니다.
,무엇을 의미하는 것은 우리가 할 수 있는 호출의 모든 기능,그리고 명시적으로 지정할this
bind()
방법과 비슷합니다! 이것은 확실히 해키 코드를 작성에서 우리를 절약 할 수 있습니다(비록 우리 모두가 여전히 hackerzzz 임에도 불구하고).
사이의 주요 차이점은bind()
call()
call()
방법:
- 지 추가적인 매개변수뿐만 아니라
- 실행하는 기능을 요청했습니다.
call()
메서드는 호출되는 함수의 복사본을 만들지 않습니다.
call()
apply()
는 동일한 목적을 수행합니다. 유일한 차이점은 그들이 어떻게 작동되는 통화()가 예상하는 모든 매개 변수를 전달에서 개별적으로 하는 반면에 적용()기대하는 편안의 우리의 모든 매개 변수입니다. Example:
모든 JS 함수에 존재하는 메소드가 내장되어 매우 유용 할 수 있습니다. 하지 않는 경우에도 끝까지 사용하여 그들의 하루 하루의 프로그래밍,당신은 여전히 그것으로 실행하면 종종을 읽을 때 다른 사람의 코드입니다.
궁금한 점이 있으면 언제나처럼 Instagram 을 통해 손을 뻗으십시오.❤
Leave a Reply