>  기사  >  웹 프론트엔드  >  js의 호출 및 적용 키워드 기능에 대한 자세한 설명

js의 호출 및 적용 키워드 기능에 대한 자세한 설명

高洛峰
高洛峰원래의
2016-12-06 11:05:45851검색

자바스크립트 호출 및 적용 키워드의 역할

적용은 두 개의 매개변수를 허용합니다. 첫 번째 매개변수는 함수 본문의 this 객체에 대한 포인터를 지정하고, 두 번째 매개변수는 첨자가 포함된 컬렉션입니다.

call은 적용을 위한 구문 설탕입니다. 매개변수 개수가 고정된 경우 세트를 첨자 없이 두 번째 매개변수로 전달할 수 있습니다.

var func = function(a,b,c)
{
 alert(a + b + c);
}
func.apply(null,[1,2,3]);//弹出6
func.call(null,1,2,3);//弹出6

적용 및 호출에 전달된 첫 번째 매개변수가 null인 경우 함수 본문의 this는 창을 가리킵니다.

적용 및 호출에 전달된 첫 번째 매개변수가 null인 경우 함수 본문의 이 매개변수는 창을 가리킵니다.

전화 및 신청의 용도

1. 이

var obj1 = {
 name = '刘备'
}
  
var obj2 = {
 name = '曹操'
}
var getName = function(){
 alert(this.name);
}
  
window.name = '三国';
getName();//弹出"三国"
getName.call(obj1);//弹出"刘备"
getName.call(obj2);//弹出"曹操"

그래서 어떤 때는 상황 이 점이 설명할 수 없을 정도로 변경된 후에는 전화나 신청을 사용하여 이 점을 수정할 수 있습니다.

document.getElementById('div1').onclick = function(){
 alert(this.id);//div1
 var fun1 = function(){
  alert(this.id);//window.id 即undefined
 }
 fun1();//普通函数的方式调用,this指代window,相当于window.id 即 undefined
}

일반 함수라고 하기 때문에 위의 예에서는 window가 되었습니다. 통화를 사용하여 수정하는 방법을 살펴보겠습니다.

document.getElementById('div1').onclick = function(){
 alert(this.id);
 var fun1 = function(){
  alert(this.id);
 }
 fun1.call(this);//强制函数内的this为外层的this,
}

2. 다른 객체의 함수 호출

예 1:

var obj1 = {
 a:1,
 b:2,
 add:function()
 {
  return this.a + this.b;
 }
}
var obj2 = {
 a:1,
 b:2,
}
var result = obj1.add.call(obj2);//用obj1的函数来计算obj2的两个属性的和
alert(result);//输出3

예 2: 상속과 유사한 효과를 얻기 위해 생성자를 빌려옴

var A = function(name)
{
 this.name = name;
};
var B = function(){
 A.apply(this,arguments)
}
B.prototype.getName = function(){
 return this.name;
}
var b = new B('刘备');
alert(b.getName());


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.