var name = '全局name'; function getName(){ console.log(this.name); return function(){ console.log(this.name); } } var obj = {name:'obj-name',getName:getName}; getName()(); obj.getName()(); getName.call(obj)();
程序输出结果为:
作为函数参数的函数中的this同样指向全局对象
1 2 3 4 5 6 7 8 9
function getName1(){ console.log(this.name); } var obj1 = {name:'obj1-name',getName:function(func){console.log(this.name);func();}}; obj1.getName(getName1);
var obj2 = {name:'obj2-name',getName:function(){console.log(this.name)}}; var obj3 = {name:'obj3-name',getName:obj2.getName}; obj3.getName();