& ldquo; не является функцией & rdquo; ошибка, когда в коде есть другая не связанная функция

Как об использовании каких-либо разрывов вообще, никаких флажков отмены и никаких дополнительных проверок условий. Эта версия просто взрывает переменные цикла (делает их Number.MAX_VALUE), когда условие встречается, и заставляет все петли прекращать элегантно.

// No breaks needed
for (var i = 0; i < 10; i++) {
  for (var j = 0; j < 10; j++) {
    if (condition) {
      console.log("condition met");
      i = j = Number.MAX_VALUE; // Blast the loop variables
    }
  }
}

Был найден аналогичный ответ для вложенного типа типа декрементирования петли, но это работает для вложенных циклов инкрементного типа, не требуя рассмотрения значения конца цикла для простых циклов.

Другой пример:

// No breaks needed
for (var i = 0; i < 89; i++) {
  for (var j = 0; j < 1002; j++) {
    for (var k = 0; k < 16; k++) {
      for (var l = 0; l < 2382; l++) {
        if (condition) {
          console.log("condition met");
          i = j = k = l = Number.MAX_VALUE; // Blast the loop variables
        }
      }
    }
  }
}
4
задан Andreas 15 January 2019 в 16:28
поделиться

1 ответ

Вот как интерпретируется ваш фрагмент кода:

function Test() {}

let tmp = function() {
    console.log(this)
}
tmp.call(Test)(function() {
    console.log(this)
}).call(Test)

Чтобы исправить это, добавьте точку с запятой после tmp.call(Test)

0
ответ дан Evert 15 January 2019 в 16:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: