use*_*380 9 javascript constructor coding-style
我通常在代码中使用与设计模式自定义对象非常相似的东西.
但是JSLint对这样的结构不满意:
function MyClass() { this.init(); }
new MyClass(data);
Run Code Online (Sandbox Code Playgroud)
因为对象在创建后立即被丢弃 - 它不被用于任何东西.我们可以通过将JSLint分配给变量来欺骗JSLint来忽略它,但它并没有改变JSLint(我猜许多JavaScript爱好者)不鼓励这种模式.
那么为什么在JavaScript构造函数中使用副作用被视为一种不好的做法呢?
对于它的价值,我认为这是一个很好的做法,因为:
罗伯特·马丁说,在他的书" 清洁法典 "中
副作用是谎言.你的函数承诺做一件事,但它也做其他隐藏的事情......它们是狡猾的和破坏性的错误,经常导致奇怪的时间耦合和顺序依赖.
您在关于数组的评论中描述的内容听起来像是"奇怪的时间耦合".