【发布时间】:2014-06-26 15:07:23
【问题描述】:
JSHint 中有一个我从未清楚理解的规则/选项:nonew 规则:
此选项禁止使用构造函数 副作用。有些人喜欢在没有的情况下调用构造函数 将其结果分配给任何变量:
new MyConstructor();这种方法没有任何优势 只需调用 MyConstructor,因为操作员 new 的对象 created 不在任何地方使用,因此您通常应避免使用构造函数 喜欢这个。
以下是我不明白的地方:
调用对象构造函数会导致“副作用”的示例是什么?
如果您不需要将实例作为变量引用,那么调用对象构造函数的正确方法是什么?
说没有
new调用MyConstructor()没有优势是什么意思?显然这不会按预期创建对象。
为了帮助引发有用的响应,当调用构造函数后不再需要引用实例时,应如何重构以下代码以实例化对象?
var Module = require('./module');
(function (Module) {
new Module({
el: '#module',
tpl: '#tpl-module',
status: false
});
})(Module);
【问题讨论】:
-
1.被认为容易出错的副作用。 2. 如果你不打算使用新创建的对象,为什么需要调用构造函数?如果答案是“副作用”,请参见 1。
标签: javascript jslint jshint