簡體   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