call과 Apply가 이를 동적으로 변경하는 것처럼 보입니다. 객체에는 특정 메서드가 없지만 다른 객체에는 있는 경우 call이나 Apply를 사용하여 다른 객체의 메서드를 사용하여 작업할 수 있습니다. 이 글은 주로 js에서 적용과 호출의 간단한 사용법을 소개합니다. 관심 있는 친구들이 참고할 수 있기를 바랍니다.
call과 apply는 JavaScript 엔진에 의해 내부적으로 구현되는 Function.prototype의 메소드로 Function.prototype에 속하기 때문에 각 Function 객체 인스턴스, 즉 각 메소드는 call과 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
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
var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));
함수 본문의 내부 포인터를 변경하기 위한 자바스크립트의 적용 및 호출 사용 예에 대한 자세한 설명
Js의 이 점 call() 및 바인딩()에 문제가 있습니다
위 내용은 js에서 적용 및 호출의 간단한 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!