我现在处于重构阶段,在声明和实例化木偶路由器时,我得到了熟悉的“未使用变量”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 */
但这不起作用:(
答案 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
,以确保在触发路由事件之前已初始化所有路由控制器。