#javascript #prototypal-inheritance
#javascript #прототипное наследование
Вопрос:
В приведенном ниже коде есть 2 класса, один из которых — Node, а другой — Btree. Если экземпляр split () вызывается на узле, я хотел бы создать новый узел, сохранить его как родительский и изменить корневой узел Btree.
Как узел может получить доступ к Btree.root? Должен ли я использовать наследование классов?? (Этот код не является полным кодом, поэтому может быть какая-то ошибка … хотя я просто хочу получить представление об этом)
Node = function(dimension,root){
this.root = root;
this.parent = null;
}
Node.prototype.split = function(
var tmp = new Node();
if(!this.parent){
var soon_to_be_root = new Node();
this.parent = soon_to_be_root;
}
}
Btree = function(dimension){
this.d = dimension;
this.root = new Node(dimension,true);
}
Ответ №1:
Если Btree является одноэлементным объектом, то:
var soon_to_be_root = new Node;
Btree.root = soon_to_be_root;
Если Btree является классом и у вас есть много их экземпляров, тогда вам нужно связать их. Есть ли у узла Btree? Есть ли у Btree узел? Если любой из этих вариантов верен, то вам следует передать экземпляр одного при создании экземпляра другого.
Если, с другой стороны, узел «является» Btree или Btree «является» Node, тогда уместно наследование.