开发者社区> 问答> 正文

关于this对象的一个例子?

关于this对象的一个例子?

例子来自高程三,看了说明还是不理解,能详细说明下吗,感觉跟直接调用没区别呀?

var name = 'The Window'; 
var object = { 
    name : 'My Object', 
    getName: function(){
        return this.name; 
    } 
};

(object.getName = object.getName)(); 
// 'The Window',在非严格模式下

展开
收起
问问小秘 2020-01-09 17:56:05 938 0
1 条回答
写回答
取消 提交回答
  • 赋值语句有返回值,赋了什么,就返回什么。

    object.getName = object.getName 执行这句你会发现返回的是 object.getName 的代码

    ƒ (){ return this.name; } 所以 (object.getName = object.getName)(); 等于把 object.getName 的代码拿出来当成一个匿名函数执行,等于这样:

    (function(){ // 这里的代码就是 object.getName 的代码 return this.name; })() 这个代码比较迷惑人的是 object.getName = object.getName ,自己给自己赋值,感觉好像还是他自己,其实这里要用的是赋值返回的代码,跟赋值给谁没关系的。

    (helloworld = object.getName)(); 这样写执行结果一样,唯一不同是会污染 helloworld 变量。

    2020-01-09 18:05:02
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
继承与功能组合 立即下载
对象的生命期管理 立即下载