簡體   English   中英

該對象未傳遞給對象方法

[英]this object not getting passed to object method

我有一個JavaScript代碼段,如下所示:

 var obj = { message: "Hello", innerMessage: !(function() { console.log(this.message); })() }; console.log(obj.innerMessage); 

輸出: undefined true

為評估innerMessage屬性而執行的函數將打印調用該方法的對象的message屬性。 該屬性的值為Hello 但是,打印出的內容是undefined 看起來對象沒有傳遞給方法。 為什么會這樣呢?

輸出:undefined true

undefined是由於IIFE中的console.log語句

(function() {
        console.log(this.message);
    })() //prints undefined and returns `undefined`

true是因為您否定了innerMessageboolean !undefined ==> true

    var obj = {
      message: "Hello",
      innerMessage: !(function() {
      })()
    };
    obj.innerMessage = function(){
     alert(this.message);
    }

obj.innerMessage();

如果要獲取消息,則可以在創建對象后使用this.message進行函數清理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM