我正在使用 Crockford 模块模式并使用下划线来表示“私有”变量。
我的作品可能用在一个使用 underscore.js 的 html 页面中,我理解它使用下划线来表示自己,很像 $ 表示 jQuery。我的问题 - 我使用下划线会搞砸事情,因为它会被解读为下划线库吗?
我知道下划线通常使用 _.stuff --- 我的变量名格式为 _varName。那么点会防止冲突吗?
谢谢!
我正在使用 Crockford 模块模式并使用下划线来表示“私有”变量。
我的作品可能用在一个使用 underscore.js 的 html 页面中,我理解它使用下划线来表示自己,很像 $ 表示 jQuery。我的问题 - 我使用下划线会搞砸事情,因为它会被解读为下划线库吗?
我知道下划线通常使用 _.stuff --- 我的变量名格式为 _varName。那么点会防止冲突吗?
谢谢!
你应该没事的。下划线仅使用“_”。它不使用 _myvarname,它只使用 _。
原因有一个。是因为 _ 是一个对象,_ = {key1:value1, key2:value2, ...}
其中包含各种函数(例如每个)作为对象的属性 _ :(例如 _.each() )。
这就像 jQuery 使用 $,除了 jQuery 的 $ 是一个函数。
因此,只要您的变量都没有被称为“_”,就可以了。
下划线中还有一个选项可以使用其他东西,如 U 或其他字符,以保存下划线对象,以防 _ 需要在其他地方使用。但是,这可能是不必要的。
下划线_
是一个全局变量,即全局对象的一个属性。
您的名字是 a) 仅以 为前缀_
,不等于 b)您自己实例的属性。
它们不能相互碰撞。
那么点会防止冲突吗?
是的。它在语法上将它们分开,以便它们在语义上确实意味着完全不同的东西。