이번에는 js에서 apply and call 사용에 대한 자세한 설명을 가져오겠습니다(코드 포함). js에서 apply and call 사용 시 주의사항은 무엇인가요?
예제를 직접 보거나 소개를 먼저 읽어도 됩니다.
call 및 Apply를 사용하면 동적으로 이를 변경할 수 있습니다. 개체에 특정 메서드가 없지만 다른 개체에는 있는 경우 call 또는 Apply를 사용하여 다른 개체 의 메서드와 함께 작동할 수 있습니다.
call과 apply는 Function.prototype의 메소드로 JavaScript 엔진에 의해 내부적으로 구현됩니다. Function.prototype에 속하기 때문에 각 Function 객체 인스턴스 즉, 각 메소드에는 call, apply 속성이 있습니다. .메소드의 속성이기 때문에 그 사용은 물론 메소드마다 다릅니다. 이 두 메소드는 동일한 기능을 갖고 있지만 단지 다른 방식으로 사용될 뿐이므로 혼동되기 쉽습니다. apply
메서드를 호출하는 this 포인터를 변경하기 위해 메서드에 사용됩니다.
간단한 예:
전화
function A() {
this.getName = function (xx) {
return xx;
}
}
function B() {
}
var a = new A();
console.log( a.getName('i am A') ); //i am A
var b = new B() ;
console.log( a.getName.call(b,'i am B') ); // i am B
B함수에는 메소드가 없고, A함수에는 getName() 메소드가 있는데, a.getName()은 당연히 성립하는데, B에서도 getName() 메소드를 사용해야 하는 경우에는 어떻게 해야 할까요? 그런 다음 call(this,'매개변수')를 사용하세요! !
이 문장을 다시 이해할 수 있습니다. 호출 또는 적용을 사용하여 다른 개체의 메서드를 호출하여 이를 동적으로 변경할 수 있습니다. , 원래 a.getName()은 a를 가리키고 호출은 이를 b를 동적으로 가리키며 b.getName()
이 되었습니다.
신청적용과 호출은 매개변수 사용이 다를 뿐입니다
function A() { this.sun = function (a ,b) { return a+b; } } function B() { } var a = new A(); console.log( a.sun(1,2) ); //3 var b = new B() ; console.log( a.sun.call(b,2,2) ); // 4 console.log( a.sun.apply(b,[3, 3]) ); //6
통화 및 신청의 일반적인 사용법
가장 일반적으로 사용되는 것은
document.getElementsByTagName을 통해 선택된 dom 노드가 배열형 배열이라는 것입니다. Array에서는 push, pop 등의 메소드를 적용할 수 없습니다. 통과할 수 있습니다: var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));
이런 방식으로 domNodes는 Array 아래의 모든 메소드를 적용할 수 있습니다.
이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 자료:
Angular 4에서 CSS 스타일 표시vue 구성 요소가 숫자 추측 기능을 구현하는 방법위 내용은 js에서 적용 및 호출 사용에 대한 자세한 설명(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!