2013-07-30 25 views
1

我使用Crockford模塊模式,並使用下劃線來表示「私人」變量。將模塊模式中的下劃線與Javascript的「私人」變量名稱衝突與underscore.js

我的工作可能在使用underscore.js的html頁面中使用,我理解它使用下劃線表示自己,很像$表示jQuery。我的問題- 我會用下劃線來表示,因爲它會被讀作下劃線?

我知道下劃線通常使用_.stuff ---我的變量名格式爲 _varName。那麼這個點是否會防止衝突呢?

謝謝!

+2

提示:如果可以,請使用lodash而不是下劃線(除非您喜歡使用緩存錯誤和跨瀏覽器不一致的緩存庫)。 –

+0

謝謝!我會試試看。 – user1700933

+0

當您對答案滿意時,您應該點擊複選標記以表示您批准了答案。 – Paul

回答

2

你應該沒問題。下劃線僅使用「_」。它不使用_myvarname,它只使用_。

原因是有的。是因爲_是如_ = {key1:value1, key2:value2, ...}中的對象,其包含作爲對象_ :(例如_each())的屬性的各種功能(例如每個)。

這就像使用$的jQuery,除了jQuery的$是一個函數。

所以只要你的變量都沒有被稱爲「_」,本身就沒問題。

下劃線中還有一個選項可用於使用其他字符,如U或另一個字符來保存下劃線對象,以防需要在別處使用_。但是,這可能是不必要的。

+0

謝謝!我是Javascript新手,所以我不確定如何測試這個場景,等等。 – user1700933

1

下劃線_是全局變量,即全局對象的屬性。

你的名字是a)只有前綴_,不等於它b)屬性你的自己的實例。

他們不能相互碰撞。

那麼點將防止衝突?

是的。它在語法上將它們分開,以便它們在語義上意味着完全不同的東西。