警告带有主干的JSHint:期望一个赋值或函数调用,而是看到一个表达式

时间:2014-04-26 09:24:38

标签: javascript backbone.js jshint

在我的所有JS文件中,我都有一个JSHint的警告:期望一个赋值或函数调用,而是看到一个表达式。

一个例子:

/*global App, Backbone*/

App.Routers = App.Routers || {};

(function () {
    'use strict';

    App.Routers.ApplicationRouter = Backbone.Router.extend({

        routes: {
            '': 'home',
            '!/case-projet/:projet(/)': 'projetService',
            '!/case-projet/:projet/Galerie(/)': 'galerieService',
            '!/case-projet(/)': 'homeEvents',
        },
        projetService: function (e) {
            this.loadView(e), App.activeProjectView.enterFromRouter();
        },
        galerieService: function (e) {
            this.loadView(e), App.activeProjectView.enterGalleryFromRouter();
        },
        homeEvents: function (e) {
            this.loadView(e),
            $('html,body').animate({scrollTop: $('.line[data-id="events"]').offset().top}, 2000, 'easeInOutQuint');
        },
        home: function () {
            new App.Views.Homeview();
        },
        loadView: function (e) {
            switch (e) {
            case 'Homeview':
                App.loadView(new App.Views.Homeview());
                break;
            case 'Incentive':
                App.loadView(new App.Views.Incentive());
                break;
            case 'Corporate':
                App.loadView(new App.Views.Corporate());
                break;
            case 'Convention':
                App.loadView(new App.Views.Convention());
                break;
            case 'Studio':
                App.loadView(new App.Views.Studio());
                break;
            default:
                App.loadView(null);
            }
        }

    });

})();

http://www.jshint.com/我有:

四个警告 17期望一个赋值或函数调用,而是看到一个表达式。 20期望一个赋值或函数调用,而是看到一个表达式。 24期望分配或函数调用,而是看到一个表达式。 27不要使用新的'副作用

由于

1 个答案:

答案 0 :(得分:0)

你还没有说你在哪里得到这些错误,但是在这里你没有充分的理由使用逗号运算符:

this.loadView(e), App.activeProjectView.enterFromRouter();

只是做:

this.loadView(e);
App.activeProjectView.enterFromRouter();

重新new有副作用,它抱怨这个:

new App.Views.Homeview();

在那里,new被用于构造一个对象,但是你没有在任何地方保存对象引用(new表达式的结果)。所以它只用于副作用(在函数中发生的其他事情),这通常不是一个好主意。