命名约定以区分节点JS中的模块/实例/方法变量

时间:2014-10-21 14:47:50

标签: javascript node.js naming naming-conventions

假设我有一些这样的代码:

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”),但我仍然坚持功能和模块变量之间的差异。

是否存在区分这些的命名约定?

1 个答案:

答案 0 :(得分:5)

这是主观的,由团队/开发人员。我一般看到用大写定义的“类”,基本上其他一切都是小写的。方法,实例变量,函数参数。 。 。只是一切!

基本的网络搜索引导我:http://www.j-io.org/Javascript-Naming_Conventions/#naming-conventions

下划线通常保留给“私有”实例变量。实际上,你没有在javascript中看到很多“我的*”或“m_”内容 - 而且我认为这只是缺少类和面向对象的概念,而这些概念并没有延续下去。

有时候这一切都很困难,因为你不知道你的变量是基元,对象,数组还是函数!因为事情不是强类型的,我认为比camelCase更能打开匈牙利符号的大门,但你也不会经常看到它(所以我们不这样做:)

最后一件事 - JSHint可以检查和约束某些事情。使用它,或jslint,这样你就不会忘记你的约定,并编写通常符合规范的代码。绝对强制执行你的编码方式(我仍在从双引号切换到单引号:)