मुझे जावास्क्रिप्ट में एक छोटी सी समस्या है। मैं निम्नलिखित करना चाहूंगा:
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)
किसी भी जानकारी की सराहना की जाएगी ...
उत्तर:
जवाब के लिए 5 № 1चूंकि ऑब्जेक्ट गतिशील हैं, बस जोड़ें pet
बाद में:
var peter = {
// anything else you want to set
};
var spot = {
owner : peter
};
peter.pet = spot;
EDIT - पीटर ऑब्जेक्ट में एक फ़ंक्शन जोड़ने पर एक बुरा प्रयास हटा दिया। इसे ठीक करने के लिए, रेनन की पोस्ट देखें।
जवाब के लिए 3 № 2
आपके द्वारा स्पॉट बनाए जाने के बाद संदर्भ सेट करें:
var peter = {
pet : undefined
}
var spot = {
owner : peter
}
peter.pet = spot
जवाब के लिए 2 № 3
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);