在nodejs/commonjs模块的根作用域中声明对象——用var还是不用var
declaring objects in root scope of nodejs/commonjs modules - to var or not to var?
也许这是习惯,或者也许是为了一致性,但为什么var
在模块的根范围内使用这么多(许多代码示例显示它)?真的有必要吗?我的意思是,模块是根作用域所以无论你声明一个变量是否有var
,在两种情况下,你都将它附加到同一个对象上,对吧?你没有弄乱任何名称空间吧?
qs = require('querystring'); // looks better than
var qs = require('querystring'); // right?
原因是Common JS模块不仅在node.js中使用,还在其他各种环境中使用。
许多常见的JS模块也可以在浏览器中使用。每个模块都有自己的函数包装器,以将其与其他模块隔离开来。在这种情况下,有必要使用var
,这样你就不会意外地泄漏到全局作用域。
也就是说,大多数开发人员更喜欢在他们的代码中显式地使用var
,原因如下:
- 这是一个很好的编程实践。说真的,编程就是实践。我已经习惯使用
- 使用
var
声明的变量不能使用delete
操作符删除。有时我故意在全局变量中省略var
,以便我可以稍后删除它们并在"忍者模式"下操作。
var
来声明变量了,所以我经常发现自己在C/c++中使用var
声明,然后编译器对我大喊大叫。相关文章:
- javascript中对象构造函数中的var属性与this.properties
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 更改json/javascript对象var名称或从数字var中检索值
- 在创建对象的函数中引用var
- Javascript-在for循环上从var中的对象获取适当性
- JavaScript 面向对象的调用函数内部函数或调用函数 insede var
- 是否可以使用HTML从任意字符串创建Jquery对象,例如var$newlink=$('<a>新链接
- 如何在不删除 javascript 中的 var 的情况下使对象成为公共对象
- 没有var,let或const的对象解构
- 将现有的 var 添加到 JavaScript 中的新对象并遍历它们
- 使用 var 键将 [数据对象] 添加到现有数组中
- 在 AngularJS 中将对象推送到 $scope.array 与 var x = [ ] 相比时是否存在任何性能问题
- 当我们尝试使用直接引用调用文档对象方法时,例如:var kk = document.getElementById;kk(
- 如何更新嵌套对象中的var
- 为什么不't〃;var derived1=新对象(基)“;将derived1.原型设置为基础
- js使用对象文字替换var
- node-js原型对象'self'var没有为回调存储正确的上下文
- javascript OOP语法,以及既是var又是函数的对象
- 如何使用var访问json对象属性
- 调用JavaScript中另一个var对象的var对象