簡體   English   中英

為什么節點中的 console.log(this) 返回一個空對象?

[英]Why does console.log(this) in node return an empty object?

當我在節點中運行 console.log(this) 時,它返回空對象

console.log(this)             // return { }

但是當我在節點中使用 IIFE

(function printThisObject(){
   console.log(this);         // return the global object
})();

誰可以給我解釋一下這個 ?

因為 NodeJS 在module 中運行您的代碼,並且this引用了它為您的模塊導出創建的對象(這也是它為您提供的module變量上的exports屬性)。 (因為他們並沒有在模塊文檔中真正提到這一點,我懷疑使用它可能不是一個好主意 - 改用exports 。)

但是您調用 IIFE 的代碼使用this引用全局對象來調用它,因為在松散(非嚴格)模式下,不通過對象屬性調用普通函數將this設置為全局對象。 (在嚴格模式下, this在那里是undefined 。)

暫無
暫無

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

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