为什么我会收到这些错误?
第329行问题60:不要使用'new'作副作用。
new widget.StyledDropdown(dojo.byId("sTitle"));
第330行问题61:不要在副作用中使用“新”。
new widget.StyledDropdown(dojo.byId("sSuffix"));
第336行问题57:不要使用'new'作副作用。
true,{shortenName : true,maxChars : 20});
第338行问题129:不要使用'new'作副作用。
new widget.StyledDropdown(dojo.byId("sCountry"),USPS.Address.countrySw...
答案 0 :(得分:21)
您没有存储对新创建的对象的引用,这是一种代码味道。
JSLint说“你正在创建一些对象,但会立即丢弃它们;唯一可能的原因就是创建对象的行为有副作用,这很奇怪。”
你可以通过防止你的构造函数有副作用(这意味着找到一些其他方式来做他们正在做的事情,例如通过将代码移动到正常函数中)或者通过存储引用来丢失警告新创建的对象(即使在您丢弃的临时局部变量中)。
答案 1 :(得分:1)
重新思考策略是最好的,但更常见的是,在开发周期中处理技术债务并不是一种选择。
如果您使用的是JSHint,则可以根据具体情况覆盖此选项。在违规代码的范围内添加此jshint注释。
/* jshint -W031 */
new widget.StyledDropdown(dojo.byId("sTitle"));
new widget.StyledDropdown(dojo.byId("sSuffix"));
...
内联配置是功能范围的。因此,仍然会检查评论范围之外的任何内容。