Javascript对象方法不是函数

时间:2018-07-13 22:55:40

标签: javascript prototype

我一直在这里搜索,没有找到完全匹配的内容,如果我错了,当然可以纠正我。这似乎很简单,但我看不出原因。

through.obj

当我实例化对象并调用dieRoll()时,我发现setUpDieForHTML不是一个函数。我已经将代码四处移动,更改为类,直接在Node REPL中运行,它似乎可以识别功能。同样,在chrome的开发工具中,实例对象具有直到调用的功能。

index.js

gulp-data

index.html

    function Dice() {
    if (!(this instanceof Dice)) {
        return new Dice();
    };
    this.sides = 6
};

Dice.prototype.setUpDieForHTML = function(roll) {

    const die = [
        'C:\\projects\\apoc\\img\\perspective-dice-six-faces-one.svg',
        'C:\\projects\\apoc\\img\\perspective-dice-six-faces-two.svg',
        'C:\\projects\\apoc\\img\\perspective-dice-six-faces-three.svg',
        'C:\\projects\\apoc\\img\\perspective-dice-six-faces-four.svg',
        'C:\\projects\\apoc\\img\\perspective-dice-six-faces-five.svg',
        'C:\\projects\\apoc\\img\\perspective-dice-six-faces-six.svg'
    ];
    const img = document.createElement('img');
    const dice = $('.dice');

    img.classList.add('dice-size');
    img.setAttribute('src', die[roll]);
    dice.append(img);
}

Dice.prototype.dieRoll = function() {
    let result = 1 + Math.floor(Math.random() * 6);

    switch (result) {
        case 1:
            this.setUpDieForHTML(result);
            break
        case 2:
            this.setUpDieForHTML(result);
            break
        case 3:
            this.setUpDieForHTML(result);
            break
        case 4:
            this.setUpDieForHTML(result);
            break
        case 5:
            this.setUpDieForHTML(result);
            break
        default:
            this.setUpDieForHTML(result);
            break
    }
}

module.exports = {
    Dice
};

我知道我的代码中还有其他问题,但这是我不知道的一件事。

0 个答案:

没有答案