2017-07-29 49 views
0

我知道「this」如何在瀏覽器上下文中工作,以及它在不同情況下的值如何變化,例如使用箭頭函數如何調用函數。在node.js和瀏覽器中的函數上下文(this)之間的區別

我打印出「此」,在爲節點的js不同的場景(快遞JS,更具體),並且它含有更大量的數據 - 包括路徑名等

我的問題是:
1 。關於'this'的規則與node.js完全一樣嗎?
2.有沒有人可以解釋node.js'這個'對象的屬性或者指向一個簡單的文章。

謝謝!

+1

是的。 NodeJS只是JavaScript的一個運行時,所有JavaScript的規則應用完全一樣...... – Li357

+0

*「任何人都可以解釋node.js'這個'對象屬性或指向我一個簡單的文章。'*我討厭說它,但這意味着「有人可以爲我寫谷歌並寫出摘要?」 – Tomalak

回答

2

瀏覽器中的this與node.js沒有不同的規則。規則由ECMAScript標準設置,瀏覽器的Javascript實現和node.js中的實現遵循相同的ECMAScript標準。

您可能正在查看的是某個特定上下文中this的「默認」值。在瀏覽器中,您可能正在查看this的默認值,該值可能是window對象。在node.js中,如果您看到文件名,您可能會將模塊句柄視爲thisglobal對象的默認值。

爲了更具體地幫助您,我們需要在每個環境中查看您正在檢查this的值的位置處的代碼,並且還要知道您是否在嚴格模式下運行。

在大多數情況下,this僅用於默認值,而不用於this值設置爲的特定對象。例如,如果要調用類似:

obj.method(); 

然後,method裏面執行,JavaScript解釋器將在this值設置爲obj。這是Javascript的面向對象特性的一部分。

1

This this object is global object is in the context。在節點是process對象。

相關問題