[英]Weird behaviour of console.log() in an object
var foo = {
a : function(){
console.log(this)
},
b : console.log(this)
}
foo.a()
輸出:- {}
{ a: [Function: a], b: undefined }
首先聲明foo
變量,然后評估鍵b
,通過console.log()
給我們全局對象:-在節點中顯示{}
,在瀏覽器中顯示Window
但是,當foo.a()
時, b
顯示undefined
我想念一些概念嗎? 為什么不再次評估?
謝謝
創建一個foo對象,並為其分配兩個屬性:
function(){console.log(this)}
設置a
be函數 b
設置為console.log(this)
的返回值。 console.log(this)立即被執行,並注銷該對象。 該對象尚未獲得屬性,因此它注銷{}
。 console.log()的返回值是undefined
,因此b
設置為undefined
。 現在,您已經使用a =一些函數和b =未定義來初始化對象。 稍后,當您調用a時,它將使用a = some函數和b = undefined登出foo對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.