Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.02.2010, 02:11
Новичок на форуме
Отправить личное сообщение для js_noob Посмотреть профиль Найти все сообщения от js_noob
 
Регистрация: 28.02.2010
Сообщений: 2

наследование и prototype
Известно, что для наследования необходимо установить прототип:
function Animal() {}

function Cat() {}
Cat.prototype = new Animal();


Так вот вопрос, почему нельзя сделать так:
function Animal() {}

function Cat() {}
Cat.prototype = Animal.prototype; // смотреть на эту строчку


Если, можно укажите ссылки на раздел в спецификации, почему так. У меня только догадка, с установкой скрытого поля [[Prototype]]
Ответить с цитированием
  #2 (permalink)  
Старый 28.02.2010, 02:14
Аватар для Octane
        
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane
 
Регистрация: 09.07.2008
Сообщений: 3,062

Сообщение от js_noob
Cat.prototype = Animal.prototype;
Так Cat.prototype и Animal.prototype будут ссылаться на один и тот же объект.
Ответить с цитированием
  #3 (permalink)  
Старый 28.02.2010, 08:12
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 5,969

Сообщение от js_noob
Так вот вопрос, почему нельзя сделать так:
можно.но только учтите что
Animal.prototype!=(new Animal())
Ответить с цитированием
  #4 (permalink)  
Старый 28.02.2010, 23:32
Кандидат Javascript-наук
Отправить личное сообщение для vk65535 Посмотреть профиль Найти все сообщения от vk65535
 
Регистрация: 21.11.2008
Сообщений: 114

Главным образом потому, что это будет уже не наследование.
(function() {

var A = function() {};
var B = function() {};
B.prototype = A.prototype;
B.prototype.extended = 42;
alert(new A().extended);

})();


По сути, это добавление альтернативного конструктора, если проводить аналогию с классическим ООП.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Наследование Fliand Events/DOM/Window 0 12.08.2009 19:48
Наследование в CSS SunnyDay (X)HTML/CSS 14 06.10.2008 19:06
Prototype v1.4.0 and Prototype v1.5.1_rc3 prihod Prototype & script.aculo.us 2 02.10.2008 15:08
наследование установок динамически создаваемыми элементами majestic jQuery 1 15.09.2008 12:21
проблема с передачей русского текста в Prototype subaru Prototype & script.aculo.us 2 26.07.2007 15:56