函数四种调用模式以及其中的this指向

网友投稿 209 2023-06-18


函数四种调用模式以及其中的this指向

第一种:函数http://直接执行模式

function add(a,b){

console.log(this);

return a+b;

}

add(10,20)//this===window

第二种:对象方法的调用模式

var obj={

name:'aaa',

age:20,

said:function(){

console.log(this);

}

}

obj.said();//this===obj,此处this指代被调用者

第三种:构造器的调用模式

function School(UjmWLA){

this.said=function(){

console.log(this);

}

}

var nanj=new School();

nanj.said();//对象调用自己的方法,this===nanj,类似上面

第四种:call和apply调用模式

function change(a,b){

this.detial=a*b;

console.log(this);

}

var p={};

change.call(p,4,5);//此处的this===p

console.log(p.detial);

var q=[];

change.call(q,5,10)//this===q

console.log(q.detial);

//apply和call一样的用法,只不过apply第二个参数用数组进行传递

var arr=[];

chaUjmWLAnge.apply(arr,[10,10]);//this===arr

console.log(arr.detial);

var str={};

change.apply(str,[20,20]);//this===str

console.log(str.detial);


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:WebPack基础知识详解
下一篇:Vue系列:通过vue
相关文章

 发表评论

暂时没有评论,来抢沙发吧~