JavaScriptに小さな問題があります。私は次のことをしたいと思います:
var peter = {
pet : spot
}
var spot = {
owner : peter
}
上記のコードは正常に実行されますが、peter.petは未定義になります。 spot.ownerが定義されますが。次のようなことをするより良い方法がありますか?
var peter = {
pet : "spot"
}
var spot = {
owner : peter
}
peter.pet = eval(peter.pet)
どんな洞察も大歓迎です...
回答:
回答№1は5オブジェクトは動的なので、追加するだけです pet
後で:
var peter = {
// anything else you want to set
};
var spot = {
owner : peter
};
peter.pet = spot;
編集-peterオブジェクトに関数を追加するという悪い試みを削除しました。正しく行うには、Renanの投稿を参照してください。
回答№2の場合は3
スポットを作成した後に参照を設定します。
var peter = {
pet : undefined
}
var spot = {
owner : peter
}
peter.pet = spot
答え№3の2
var peter = {};
var spot = {owner: peter};
peter.pet = spot;
または、タイピングを強化することもできます。
PetOwner = function () {};
PetOwner.prototype.pet = null;
Animal = function (owner) {
this.owner = owner;
this.owner.pet = this;
};
Animal.prototype.owner = null;
var peter = new PetOwner();
var spot = new Animal(peter);