var name = "xiaobai"; var object = { name : "xiaoxin"; getNameFun:function(){ return funtion(){ return this.name; } } } console.log(object.getNmaeFun()());
输出结果是:xiaobai;
为什么不是:xiaoxin;
看下面
var -this=this;
先说一下函数,函数是一种特殊的对象,这个特殊的对象,这个特殊对象就是window对象。
var c = 1; var b = 10; function f(){ console.log(this); } f();
输出为:window对象
这是上面就可以理解了
return function(){ this.name; }
这是一个匿名函数不是object对象的属性和函数成员,匿名函数this指向window对象 this.name相当于window.name
再看下面代码
var name = "我是小可爱"; var object = { name :"我的小宝贝", getNameFunc:function(){ var _this = this; return function(){ return _this.name; } } }
console.log(object.getNameFunc()());
输出:我的小宝贝