Если вы пытаетесь создать конструктор, который будет определять свойства на экземпляре, которые также являются экземпляров объекта, это невозможно. Допустим, например, что это ваш конструктор:
function Organism() { this.organismA = new Organism(); }
Затем пытается создать новый экземпляр, который будет вызывать «RangeError: Максимальный размер стека вызова превышена» и по уважительной причине, потому что каждый раз, когда новый экземпляр он попытается создать новый экземпляр сам по себе и так далее, пока вы не превысите стек.
Однако вы можете сделать это в JavaScript:
function Organism() {}
var organism = new Organism();
organism.organismA = new Organism();
organism.organismB = new Organism();
// And now the instance and its properties are all Organism
console.log('organism is instance of Organism: ' + (organism instanceof Organism)); // true
console.log('organism.organismA is instance of Organism: ' + (organism.organismA instanceof Organism)); //true
console.log('organism.organismB is instance of Organism: ' + (organism.organismB instanceof Organism)); //true
// If you want you can wrap this in a factory
function createExtendedOrganism() {
var organism = new Organism();
organism.organismA = new Organism();
organism.organismB = new Organism();
return organism;
}
var extendedOrganism = createExtendedOrganism();
// Again the instance and its properties are all Organism
console.log('extendedOrganism is instance of Organism: ' + (extendedOrganism instanceof Organism)); //true
console.log('extendedOrganism.organismA is instance of Organism: ' + (extendedOrganism.organismA instanceof Organism)); //true
console.log('extendedOrganism.organismB is instance of Organism: ' + (extendedOrganism.organismB instanceof Organism)); //true
это может быть полезно http://stackoverflow.com/questions/502366/structs-in-javascript – emrahozkan
JavaScript делает не делайте явного ввода текста, так что вам придется немного изменить этот пример. Короткий ответ: вы можете поместить столько объектов внутри объектов, сколько захотите, и вы можете связать столько свойств экземпляра, которые сами являются объектами в конструкторе объектов. –
Просто присвойте правильные значения свойствам. –