前端开发笔记让前端飞

JavaScript理解(object.getName = ob

2018-03-13  本文已影响7人  后除
var name = "The Window";
var object = {
    name : "My Object",
    getName: function(){
         return this.name;
    }
};
(object.getName = object.getName)(); // The Window

我的理解是:
this取决于定义环境而不取决于执行环境。

在这里

(object.getName = object.getName)();

相当于

(object.getName = function () {
    return this.name;
})();

// 拆分开来看
function () {
    return this.name;
}
// 这里的this = window
// 然后window.name在前面已经定义过了 var name = "The Window"; 定义全局变量
// 所以实际上执行的是
(function () {
     return this.name;
 })(); // The Window
上一篇 下一篇

猜你喜欢

热点阅读