原理:
var obj={
foo:function(){}
};//函数适用于任何环境
var foo=obj.foo;
obj.foo()
foo()
分析:
var obj={foo:5};
var obj={ foo : function ( ) { } };
总结:this 指的是函数运行时所在的环境
变量的值也就取决于所处的环境
用法:
纯粹的函数调用:
var x=1;
function test(){
cosole.log(this.x);
}
test(); //1
作为对象方法的调用:(this指代上级对象)
function test(){
console.log(this.x)
}
var obj={};
obj.x=1;
obj.m=test;
obj.m(); // 1
作为构造函数调用(this指代新对象)
var x=2;
function test(){
this.x=1;
}
var obj=new test();
obj.x; // 2
作为apply调用(apply():改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象,this指代第一个参数)
var x=0;
function test(){
console.log(this.x);
}
var obj={};
obj.x=1;
obj.m=test;
obj.m.apply() //0 (obj.m.apply(obj); //1)
网友评论