Переменные, создаваемые внутри функции конструктора объектов являются уникальными для каждого нового объекта, в то время как переменные внутри prototype функции конструктора являются общими для всех объектов сразу. Поэтому частные переменные важно задавать только внутри функции конструктора, а в prototype описывать только общие функции-методы.
function Tree(x) {
this.value = x; // Это значение уникально для каждого объекта
}
Tree.prototype = {
children: [], // Этот массив является общим для всех созданных объектов
addChild: function(x) {
this.children.push(x);
}
};
var left = new Tree(2);
left.addChild(1);
left.addChild(3);
var right = new Tree(6);
right.addChild(5);
right.addChild(7);
var top = new Tree(4);
top.addChild(left);
top.addChild(right);
top.children; // [1, 3, 5, 7, left, right]
Комментариев нет:
Отправить комментарий