87,921
社区成员
发帖
与我相关
我的任务
分享
var testFn = function(){alert(this.name);}
var name = 'aaa';
testFn(); //aaa,这里调用了window.name
var obj = {name:'bbb'};
obj.testFn = testFn;
obj.testFn(); //bbb obj.name
testFn.call({name:'ccc'}); //ccc
var obj2 = {};
obj2.fn = function(){alert(this.age);}
obj2.age = 18;
var fn = obj2.fn;
fn(); //undefined, 函数被赋值给一个变量,然后脱离任何对象运行,this为window
函数中的this指代谁,是由函数调用时决定的,函数附着在哪个对象上运行,那么this就指代它,通过call和apply方法,可以指定this对象。如果函数没有依托任何对象运行,则this为window(js的严格模式下,this为null).var name="The Windows";
function object(){
this.name="My Object";
this.getNameFunc=function(){
var name="My GetNameFunc";
alert("name2:"+name+" this.name2:"+this.name);
return function(){
this.name="My NONameFunc";
alert("name3:"+this.name+" this.name3:"+this.name);
return this.name;
};
}
alert("name1:"+name+" this.name1:"+this.name);
return getNameFunc;
}
alert(object()()());