声明Marionette / Backbone路由器没有未使用的变量 - JSLint

时间:2013-08-14 11:56:09

标签: javascript variables backbone.js marionette jslint

我现在处于重构阶段,在声明和实例化木偶路由器时,我得到了熟悉的“未使用变量”JSLint。这是我的代码:

App.Application.addInitializer(function () {

        var globalRouter = new App.Routers.GlobalRouter({
            controller: new App.Controllers.GlobalController()
        });

        //Start Backbone History
        Backbone.history.start();

});

我得到的错误是:

 unused 'globalRouter'

基本上,我在启动应用程序之前使用变量声明来创建路由器。我试图避免这样做:

       new App.Routers.GlobalRouter({
            controller: new App.Controllers.GlobalController()
        });

因为它只是引入了一个不同的JSLint错误,所以说'不要使用'new'来副作用'。有没有人对此有任何建议?

此外,我尝试添加:

 /*jslint unparam: true */

但这不起作用:(

1 个答案:

答案 0 :(得分:2)

以下代码值得商榷,但您可以像这样使用IIFE:

App.Application.addInitializer(function () {
    (function(){
        return new App.Routers.GlobalRouter({
            controller: new App.Controllers.GlobalController()
        });
    }());
});

或使用中间变量:

App.Application.addInitializer(function () {
    (function(){
        var router = new App.Routers.GlobalRouter({
            controller: new App.Controllers.GlobalController()
        });
        return router;
    }());
});

另一方面,由于您正在重构,我会在“initialize:after”侦听器中启动history,以确保在触发路由事件之前已初始化所有路由控制器。