[英]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
是因為您否定了innerMessage
是boolean
!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.