这就是对象“playerTurnObj”

function playerTurnObj(set_turn) {
    this.playerTurn=set_turn;
    function setTurn(turnToSet) {
        this.playerTurn=turnToSet;
    }
    function getTurn() {
        return this.playerTurn;
    }
}

这就是我正在做的
var turn = new playerTurnObj();
turn.setTurn(1);

因此,我尝试使脚本在playerTurnObj()中执行setTurn()方法,以在正在制作的游戏中保存“回合”。问题是,它没有执行turn.setTurn(1);。部分原因是我不断收到上述错误

我究竟做错了什么?我进行了搜索,但是找不到确切的答案。

最佳答案

这不是JavaScript的工作方式。您的“构造函数”函数包含在playerTurnObj范围之外不可见的内联函数。因此,您的变量turn没有定义方法setTurn,因为错误消息正确指出。可能您想要这样的东西:

function playerTurnObj(set_turn) {
    this.playerTurn=set_turn;
}

playerTurnObj.prototype = {
    setTurn: function(turnToSet) {
        this.playerTurn=turnToSet;
    },
    getTurn: function() {
        return this.playerTurn;
    }
};

现在,您的变量turn具有两种方法setTurngetTurn,它们可以对您使用new创建的实例进行操作。

07-26 02:29