第一种:函数直接执行模式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(){ 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===pconsole.log(p.detial);var q=[];change.call(q,5,10)//this===qconsole.log(q.detial);//apply和call一样的用法,只不过apply第二个参数用数组进行传递var arr=[];change.apply(arr,[10,10]);//this===arrconsole.log(arr.detial);var str={};change.apply(str,[20,20]);//this===strconsole.log(str.detial);
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!