假设我有一些这样的代码:
var moduleVar = "I belong to this module, you could also call me a static var";
var ClassName = function() {
var instanceVar = "I belong to this instance";
function someFunction(functionVar) {
var anotherFunctionVar = "I belong to this function";
return 1;
}
}
module.exports = ClassName;
我一直在寻找节点的命名约定,但我还没有找到任何可以处理这个问题的东西。 我喜欢用下划线为实例变量添加前缀(例如“_instanceVar”),但我仍然坚持功能和模块变量之间的差异。
是否存在区分这些的命名约定?
答案 0 :(得分:5)
这是主观的,由团队/开发人员。我一般看到用大写定义的“类”,基本上其他一切都是小写的。方法,实例变量,函数参数。 。 。只是一切!
基本的网络搜索引导我:http://www.j-io.org/Javascript-Naming_Conventions/#naming-conventions
下划线通常保留给“私有”实例变量。实际上,你没有在javascript中看到很多“我的*”或“m_”内容 - 而且我认为这只是缺少类和面向对象的概念,而这些概念并没有延续下去。
有时候这一切都很困难,因为你不知道你的变量是基元,对象,数组还是函数!因为事情不是强类型的,我认为比camelCase更能打开匈牙利符号的大门,但你也不会经常看到它(所以我们不这样做:)
最后一件事 - JSHint可以检查和约束某些事情。使用它,或jslint
,这样你就不会忘记你的约定,并编写通常符合规范的代码。绝对强制执行你的编码方式(我仍在从双引号切换到单引号:)