繁体   English   中英

为什么引用'this'会返回值,它应该是未定义的?

[英]Why does reference to 'this' return the value, it should be undefined?

我有模块......

var myModule = (function(){

    var obj = new Object();
    obj.name = "";
    obj.sayName = function(){
        obj.name = "jon";
        console.log(obj.name); 
        console.log(this.name);  
    }
    return obj;

})()

myModule.sayName();

这会根据console.log语句打印两次“jon”。

但是我真的不明白为什么'this'是正确的,因为它会返回对函数的引用并且'undefined'不是吗?

你正在调用myModule.sayName()所以this sayName里面是myModule

myModule的值是来自obj的对象引用的副本(因为这是从匿名IIFE返回的内容)。

因此obj.namethis.name是相同的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM