Dan*_*eng 0 javascript equals object
在问这个问题之前我搜索了2个小时,虽然我认为这是一个相当基本的问题,但没有找到解决问题的方法.在Java中,您可以使用equal()来查看两个对象是否具有相同的值.我认为这是==运算符在Javascript中的工作方式.显然它没有.:(
我一直在尝试使用==运算符比较两个自己创建的对象,但它返回false,尽管所有值都相等.为什么?
这是我创建我使用的字段对象的函数:
function field(player, figureKind) {
this.player = player;
this.figureKind = figureKind;
this.hidden = true;
if (player == 1 && hidden && figureKind != trapF && figureKind != flagF) {
this.image = figureKind.getImage(0);
} else if (player != 1 && hidden) {
this.image = hidden;
} else {
this.image = figureKind.getImage(player);
}
this.setKind = setKind;
function setKind(figureKind) {
this.figureKind = figureKind;
this.image = figureKind.getImage(player);
}
this.getKind = getKind;
function getKind() {
return this.figureKind;
}
this.getImage = getImage;
function getImage() {
return this.image;
}
this.getPlayer = getPlayer;
function getPlayer() {
return this.player;
}
this.removeHidden = removeHidden;
function removeHidden() {
this.hidden = false;
this.image = figureKind.getImage(player);
if (figureKind == trapF)
this.image = figureKind.getImage(1);
}
}
console.log(new field(2,flagF) == new field(2,flagF));
Run Code Online (Sandbox Code Playgroud)
这返回false虽然两个对象应该相同,不是吗?
如果有人能告诉我为什么这不起作用以及如何使其工作(因为我需要对我的游戏进行比较)我会非常感激!
即使它们包含相同的元素,JavaScript中的对象也不尽相同.每个单独创建的对象都是唯一的存储容器,因此==将返回false.
如果要查看它们是否包含相同的属性,则需要比较两个对象的每个属性.