この質問をする前に2時間ほど検索しましたが、問題を解決するものは何も見つかりませんでしたが、それはかなり基本的なものだと思います. Java では、 equal() を使用して、2 つのオブジェクトの値が同じかどうかを確認できます。これが == 演算子が Javascript でどのように機能するかだと思いました。どうやらそうではありません。:(
== 演算子を使用して、独自に作成した 2 つのオブジェクトを比較しようとしましたが、すべての値が等しいにもかかわらず、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));
2 つのオブジェクトは同じはずなのに、これは false を返しますよね?
これが機能しない理由と、それを機能させる方法 (ゲームでこの比較が必要なため) を誰かが教えてくれたら、本当に感謝しています!