Warning JSHint with backbone : Expected an assignment or function call and instead saw an expression

StackOverflow https://stackoverflow.com/questions/23308974

  •  09-07-2023
  •  | 
  •  

문제

On all my JS files, i have a warning of JSHint : Expected an assignment or function call and instead saw an expression.

A example :

/*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);
            }
        }

    });

})();

on http://www.jshint.com/ i have :

Four warnings 17 Expected an assignment or function call and instead saw an expression. 20 Expected an assignment or function call and instead saw an expression. 24 Expected an assignment or function call and instead saw an expression. 27 Do not use 'new' for side effects

Thanks

도움이 되었습니까?

해결책

You haven't said where you're getting these errors, but for instance here you're using the comma operator for no good reason:

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

Just do:

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

Re new with side effects, it's complaining about this:

new App.Views.Homeview();

There, new is being used to construct an object, but then you're not saving the object reference (the result of the new expression) anywhere. So it's only being used for side-effects (other things that happen in the function), which is not generally a good idea.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top