Показать сообщение отдельно
  #1 (permalink)  
Старый 07.04.2013, 23:16
Аватар для Akalenik
Интересующийся
Отправить личное сообщение для Akalenik Посмотреть профиль Найти все сообщения от Akalenik
 
Регистрация: 05.03.2013
Сообщений: 20

Наследование. ПОчему так?
Разбираюсь с наследованием по руководству Флэнагана. Там указывается функция создания нового объекта наследующего прототип:
function inherit(p){
    if (p==null) throw TypeError();
    if (Object.create) {
        return Object.create(p);
    }
    var t = typeof p;
    if (t !== "object" && t !== "function") throw TypeError;
    function f() {};
    f.prototype = p;
    return new f();
}


Работая с ней, к примеру, так:
var o = {};
o.x = 1;
var p = inherit(o);
p.x = 3;

я в итоге получаю вывод:
o: Object {x: 1}
p: Object {x: 3, x: 1}

Вопрос: почему свойство х дублируется, а не изменяется? Где я запутался?
Ответить с цитированием