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

Avn*_*rSo 4 javascript naming naming-conventions node.js

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

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;
Run Code Online (Sandbox Code Playgroud)

我一直在寻找节点的命名约定,但我还没有找到任何解决这个问题的方法.我喜欢用下划线为实例变量添加前缀(例如"_instanceVar"),但我仍然坚持功能和模块变量之间的差异.

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

cla*_*lay 5

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

基本的网络搜索让我想到了这个:http://www.j-io.org/Javascript-Naming_Conventions/#naming-conventions

下划线通常保留用于"私有"实例变量.实际上,你没有在javascript中看到很多"我的*"或"m_"内容 - 而且我认为这只是缺少类和面向对象的概念,而这些概念并没有随之而来.

这有时会使事情变得困难,因为你不知道你的变量是基元,对象,数组还是函数!由于事情并不是强类型的,我认为比camelCase打开匈牙利记谱法的大门,但你也不经常看到它(所以我们不这样做:)

最后一件事 - JSHint可以检查和约束一些事情.使用它,或者jslint,所以你不要忘记你的约定,并编写通常符合规范的代码.绝对强制你如何编码(我仍然从双引号切换到单引号:)