1

我正在使用 Crockford 模块模式并使用下划线来表示“私有”变量。

我的作品可能用在一个使用 underscore.js 的 html 页面中,我理解它使用下划线来表示自己,很像 $ 表示 jQuery。我的问题 - 我使用下划线会搞砸事情,因为它会被解读为下划线库吗?

我知道下划线通常使用 _.stuff --- 我的变量名格式为 _varName。那么点会防止冲突吗?

谢谢!

4

2 回答 2

2

你应该没事的。下划线仅使用“_”。它不使用 _myvarname,它只使用 _。

原因有一个。是因为 _ 是一个对象,_ = {key1:value1, key2:value2, ...}其中包含各种函数(例如每个)作为对象的属性 _ :(例如 _.each() )。

这就像 jQuery 使用 $,除了 jQuery 的 $ 是一个函数。

因此,只要您的变量都没有被称为“_”,就可以了。

下划线中还有一个选项可以使用其他东西,如 U 或其他字符,以保存下划线对象,以防 _ 需要在其他地方使用。但是,这可能是不必要的。

于 2013-07-30T17:20:49.937 回答
1

下划线_是一个全局变量,即全局对象的一个​​属性。

您的名字是 a) 仅以 为前缀_,不等于 b)自己实例的属性。

它们不能相互碰撞。

那么点会防止冲突吗?

是的。它在语法上将它们分开,以便它们在语义上确实意味着完全不同的东西。

于 2013-07-30T17:37:12.027 回答