Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 区分节点JS中模块/实例/方法变量的命名约定_Javascript_Node.js_Naming_Naming Conventions - Fatal编程技术网

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

Javascript 区分节点JS中模块/实例/方法变量的命名约定,javascript,node.js,naming,naming-conventions,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 b

假设我有如下代码:

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”),但我仍然停留在函数变量和模块变量之间的差异上


是否有一个命名约定来区分这些?

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

基本的网络搜索让我想到了这一点:

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

这一切有时会让事情变得困难,因为你不知道你的变量是原语、对象、数组还是函数!由于事情不是强类型的,我认为这比camelCase更能打开匈牙利符号的大门,但你也不经常看到这一点(所以我们不这么做:)


最后一件事-有些事情可以通过检查和约束。使用它,或者
jslint
,这样您就不会忘记您的约定,并编写一般一致的代码。明确地强制执行您的编码方式(我仍在从双引号切换到单引号:)

我怀疑是否有一个通用的。不同的组织可能有自己的惯例。谢谢。我看过JSHint,它在强制执行某些代码样式方面非常出色,但我认为它不能帮助我强制执行这种条件命名约定——我认为它只能对所有变量强制执行一个约定,而不考虑范围。