Показать сообщение отдельно
  #1 (permalink)  
Старый 07.03.2013, 01:45
Интересующийся
Отправить личное сообщение для Seran4ek Посмотреть профиль Найти все сообщения от Seran4ek
 
Регистрация: 04.06.2010
Сообщений: 18

помогите разобраться с прототипами
с системой наследования на протитах я знаком и как она работает в ОБЩЕМ представляю.
но недавно решил углубиться и немного запутался.
собственно смутило меня вот что.

function Rabbit() { }
Rabbit.prototype = { eats: true };
var rabbit = new Rabbit();


в таком случае при создании объекта rabbit в его свойство __proto__ будет записана ССЫЛКА на свойство prototype конструктора(Rabbit).
Но почему в этом случае

function Rabbit() { }
Rabbit.prototype = { eats: true };
var rabbit = new Rabbit();
Rabbit.prototype = {};
alert(rabbit.eats);

результат TRUE, а в этом

function Rabbit(name) { }
Rabbit.prototype = { eats: true }
var rabbit = new Rabbit();
Rabbit.prototype.eats = false;
alert(rabbit.eats);

FALSE. я никак не могу понять.

ведь и в первом и во втором случае мы изменили Rabbit.prototype
Ответить с цитированием