0

我现在正处于重构阶段,在声明和实例化 Marionette 路由器时,我得到了熟悉的“未使用变量”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 错误,说'不要使用'新'来产生副作用'。有人对此有什么建议吗?

此外,我尝试添加:

 /*jslint unparam: true */

但这不起作用:(

4

1 回答 1

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;
    }());
});

附带说明一下,由于您正在重构,我将从history“initialize:after”侦听器开始,以确保在触发路由事件之前已初始化所有路由控制器。

于 2013-08-14T15:50:37.973 回答