this

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()());

  输出:我的小宝贝

原文地址:https://www.cnblogs.com/1403723150cxf/p/9252947.html