与Javascript对象的混淆

与Javascript对象的混淆,javascript,phaser-framework,Javascript,Phaser Framework,所以,我开发了一个小游戏的基础。。。井字游戏。。。但我有一个问题,我不知道如何以最好的方式解决这个问题。。。所以我有这个: var playfield = function(){ this.board = [ [null, null, null], [null, null, null], [null, null, null] ]; this.simulationMode = false; this.nextSymbol = "X"; this.setSymbol =

所以,我开发了一个小游戏的基础。。。井字游戏。。。但我有一个问题,我不知道如何以最好的方式解决这个问题。。。所以我有这个:

var playfield = function(){
this.board = [
    [null, null, null],
    [null, null, null],
    [null, null, null]
];

this.simulationMode = false;

this.nextSymbol = "X";

this.setSymbol = function(symbol, x, y){
        if(this.whoIsNext() == symbol || this.simulationMode){
            if(this.isFree(x, y)){
                this.board[y][x] = symbol;
                this.changeWhoIsNext();
                return true;
            }else{
                console.log("Field is not empty "+x+";"+y);
                return false;
            }   
        }else{
            console.log("It is not "+symbol+"'s turn");
        }
    };
...
}
这将存储游戏场本身

var board1 = new playfield();
然后我想创建一个新实例,计算下一步的移动:

var simboard = new playfield();
但我会这样做:

simboard.setSymbol("X", x, y);
它在board1和simboard中进行更改。 为什么?我做错了什么

完整来源可在此处找到:

您在引用
this.board
属性时遇到问题。您必须以不同的方式初始化它。例如,在创建对象的新实例时。
new
是否会引发错误?好的一点是,复制粘贴错误。您不必为此感到抱歉。我确实尽可能多地从OOP开始。。但后来遇到了这个问题,然后改变了一切。。。而且。。。是 啊第一个真正的Javascript项目。。。所以我很困惑。目前我只了解Javascript的基本功能、函数编程和jQuery。。。通常我使用PHP。。。删除了第一条注释,听起来不像是个傻瓜,但基本上是这样的:试着遵循OOP标准,阅读如何在JS中定义类和方法。尝试遵循一种设计模式,我发誓,你不会再有这种问题了!我拼凑了一些代码,可以很好地工作:祝您编码愉快!您对
this.board
属性的引用有问题。您必须以不同的方式初始化它。例如,在创建对象的新实例时。
new
是否会引发错误?好的一点是,复制粘贴错误。您不必为此感到抱歉。我确实尽可能多地从OOP开始。。但后来遇到了这个问题,然后改变了一切。。。而且。。。是 啊第一个真正的Javascript项目。。。所以我很困惑。目前我只了解Javascript的基本功能、函数编程和jQuery。。。通常我使用PHP。。。删除了第一条注释,听起来不像是个傻瓜,但基本上是这样的:试着遵循OOP标准,阅读如何在JS中定义类和方法。尝试遵循一种设计模式,我发誓,你不会再有这种问题了!我拼凑了一些代码,可以很好地工作:祝您编码愉快!