2016-03-11 189 views
1

我在使用nodeJS時遇到了兩個衝突的命名約定。一些變量以單個下劃線開頭,如_temp,而一些變量以雙下劃線開頭,如__dirnamenodeJS中的雙下劃線與單下劃線

我一直在試圖尋找這個命名約定差異的答案。我檢查了Double Underscore in front of a variable,但答案是非常具體的__dirname__filename。它沒有解決衝突的命名約定。

如果有人能爲我提供這方面的資源,那將會很棒。

+0

http://stackoverflow.com/questions/23884265/double-underscore-in-front-of-a-variable – Dehli

+0

@Dehli我引用的那篇文章本身在我的問題,並且還指定了失敗的原因,以回答我的問題。 – chaudharyp

+0

糟糕!認爲這會有所幫助。對於那個很抱歉。 – Dehli

回答

1

我可能是錯的,但據我所知,在js中只有一個約定:「如果方法或變量應該是私有的,在它前面使用下劃線 - _privateMethod」。即使這是一種「非官方的」。雙下劃線不是命名約定。只有一些來自節點的開發者決定這樣命名。

+0

我懷疑,有人認爲單個下劃線將被保留給開發人員以添加私有屬性,因此作爲框架,Express決定使用雙下劃線來避免與開發人員可能使用的任何單個下劃線屬性衝突。但是,正如你所說,這沒有「官方」指南。 – jfriend00

2

即使我是新來的node.js和尋找答案。在node.js文檔中找到答案。有關更多詳細信息,請參閱Node.js - Globals

如上所述答案,單個下劃線(_private)的變量是定義私有變量。

雙下劃線(__)在node.js中沒有任何約定。 在node.js中只有兩個變量(稱爲全局對象)和雙下劃線。

__dirname:使用時獲得在

__filename當前執行的腳本所在的目錄的名稱:用於獲取代碼的文件名被執行。