Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Задачка про ООП и наследование (https://javascript.ru/forum/misc/33296-zadachka-pro-oop-i-nasledovanie.html)

aleman 18.11.2012 01:36

Задачка про ООП и наследование
 
Не могу сообразить как можно провернуть следующее:

Есть функция A() и объект B{}.
"А" является еще и объектом, который содержит некоторые методы. ( A.custom )
"B" имеет свои методы (B.test = '...') и наследует методы от "A"

Функция A() - Выводит обьект B, который имеет как свои методы, так и унаследованные от A: ( А().custom; A().test )
Обьект A - только свои методы: ( A.custom )

Возможно ли такое?

tenshi 18.11.2012 01:38

возможно

aleman 18.11.2012 02:05

Видимо не правильно задал вопрос.

Если такое возможно, то как это сделать. Покажите пожалуйста.

tenshi 18.11.2012 03:07

A.prototype= A

melky 18.11.2012 11:12

A = function () { return B; };
A.prototype.custom = "OK";

B = function () {};
B.prototype = A.prototype;
B = new B();

aleman 18.11.2012 15:07

tenshi, ну что у вас за ответы.


melky, этот способ я тоже делал, но он не работает
A = function () { return B; };
A.prototype.custom = "OK";

B = function () { this.test = "Test" };
B.prototype = A.prototype;
B = new B();

console.log( A.custom ) //undefined

tenshi 18.11.2012 15:09

а что с моими ответами не так?

aleman 18.11.2012 15:19

Цитата:

Сообщение от tenshi
а что с моими ответами не так?

Я прошу помочь в решении моей головоломки, а не спрашиваю как делается наследование через прототип.

Мне нужно что бы результат был следующим:
Функция A() - Выводит обьект B который имеет как свои методы, так и унаследованные от A: ( А().custom; A().test )

Обьект A - Выводит только свои методы: ( A.custom )

melky 18.11.2012 15:50

Цитата:

Сообщение от aleman
melky, этот способ я тоже делал, но он не работает

он работает, просто надо обращаться к свойствам экземпляра

new A().custom



Цитата:

Сообщение от aleman
Функция A() - Выводит обьект B который имеет как свои методы, так и унаследованные от A: ( А().custom; A().test )

Обьект A - Выводит только свои методы: ( A.custom )

тогда надо делать так, как сказал tenshi

объект по себе ничего сам не выводит!

aleman 18.11.2012 16:09

Цитата:

Сообщение от melky
тогда надо делать так, как сказал tenshi

Цитата:

Сообщение от tenshi
A.prototype = A

Я не могу понять как это меня спасет?


Часовой пояс GMT +3, время: 02:41.