无法在原型上调用函数

时间:2018-10-02 03:00:07

标签: javascript function prototype

我不确定这是什么问题... 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但是,情况4执行得很好……尽管是循环的。我在这里想念什么?

0 个答案:

没有答案