Я не совсем уверен, в чем проблема ... oneTime
- это массив, который содержит только "init";doLoop
- это массив, содержащий только «обновление»;Когда я пытаюсь вызвать функцию из oneTime
, она выдает ошибку Uncaught TypeError: Cannot read property 'init' of undefined
.Если в том же месте я регистрирую this
на консоли, прототип показывает ожидаемую функцию init.
Действительно странная часть, по крайней мере для меня, состоит в том, что функции вызываются точно так жеиз doLoop
выполнить просто отлично.
Есть идеи?
State.prototype.run = function() {
let _that = this;
// Case 1
for (var a = 0; a < oneTime.length; a++) {
this.prototype[oneTime[a]]();
}
// Case 2
for (var a = 0; a < oneTime.length; a++) {
_that.prototype[oneTime[a]]();
}
// Case 3
!function() {
for (var a = 0; a < oneTime.length; a++) {
_that.prototype[oneTime[a]]();
}
}();
// Case 4
this.run.intervala = setInterval(function() {
for (var a = 0; a < oneTime.length; a++) {
_that.prototype[oneTime[a]]();
}
}, 1000 / fps);
// Case 5
this.run.interval = setInterval(function() {
for (var a = 0; a < doLoop.length; a++) {
_that.prototype[doLoop[a]]();
}
}, 1000 / fps);
}
- РЕДАКТИРОВАТЬ - Неужели еще немного поиграть ... Случаи 1, 2 и 3 все вернули Cannot read property 'init' of undefined
Тем не менее, Case 4 выполняется очень хорошо ... хотя и в цикле.Что мне здесь не хватает?