javascript – 与JSHint相反,Backbone.js“使用新的副作用”吗?

前端之家收集整理的这篇文章主要介绍了javascript – 与JSHint相反,Backbone.js“使用新的副作用”吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个自包含的Backbone.View实现,称为MainControllerView,它可以处理自己(即,没有理由对它进行外部引用.).如果,在我的主要bootstrapper函数中,我会这样做:
$(function() {
  new MainControllerView();
});

JSLint / JSHint抱怨我使用“new for side effects”.阅读此警告表示上述内容被视为有臭味的代码.替代方法是不使用new,只是将构造函数作为函数调用,或者将其赋值给变量.但是,直接将我的MainControllerView()作为函数调用而不使用new会在主干代码中引发错误,因此这显然不是一个选项.对我来说似乎完全错误,以下是更好的代码

$(function() {
  var instantGarbage = new MainControllerView();
});

实际上,这引发了一个不同的JSLint警告“instantGarbage已定义但从未使用过”.显然,如果我这样做,我就会受到威胁,如果我不这样做,我就会受到威胁.那么,是否有一种不同的“正确”方式来处理这类事情?以某种方式创建即时垃圾变量是“更好的代码”替代方案吗? Backbone.js是否以非Crockford批准的方式利用“new”关键字?或者这只是“规则”的例外之一?

解决方法

新的没有害处.一遍又一遍地重复.

如果使用正确,新的工作非常好.就像Backbone一样.

JSLint是一个非常自以为是的短信;仅仅因为克罗克福德说某事不好或不应该使用,并不意味着这是一个普遍的事实.此外,他背后的推理更多的是它在一个更古典的外观背后隐藏了Javascript原型性质.

但是,如果使用JSHint之类的工具,则可以配置这些警告.

我更喜欢你的两个声明中的后者

$(function() {
  var instantGarbage = new MainControllerView();
});

您可以使用JSHint的unused:false选项来禁止此操作.

或者你可以设置nonew:false.

这些可以在.jshintrc中设置,甚至可以在每个文件中设置注释:

/* jshint unused: false */

文件的顶部.这将为文件关闭它.您甚至可以针对特定范围禁用它.

查看jshint documentation

猜你在找的JavaScript相关文章