逻辑(JSint友好)等效于while循环中的此赋值

logical (jshint friendly) equivalent of this assignment in a while loop

本文关键字:循环 while 赋值 JSint 友好 逻辑      更新时间:2023-09-26
  dispose: function() {
    var disposer;
    while (disposer = this._disposers.shift()) { // expected a conditional expression and instead saw an assignment.
      disposer();
    }
  },

jshint不高兴在while循环中分配disposer

有没有办法维护这个逻辑并使其jshint友好?

您只需使用 () 即可修复它。

dispose: function () {
    var disposer;
    while ((disposer = this._disposers.shift())) {
        disposer();
    }
}

除非我错过了什么...

dispose: function() {
    var disposer = this._disposers.shift();
    while (disposer) {
        disposer();
        disposer = this._disposers.shift();
    }
},

您可能还想增强您的条件:

while (typeof disposer === 'function') {

工作示例:http://jsfiddle.net/DPNYq/

dispose: function() {
  var disposer;
  while (typeof (disposer = this._disposers.shift()) === 'function') {
    disposer();
  }
},