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 16:26

Возможно если B.prototype = new A(), но A должна оставаться функцией.

Magneto 18.11.2012 16:44

Функции вроде как являются уже объектами.
var fun = function (msg) {
    alert(msg);
};

fun.data = 'Hello';

fun.mtd = {
    q: 1,
    w: function () {
         alert(2000);
    }
};

fun('Привет, я функция');
fun.mtd.w();

alert(fun.data);
alert(fun.mtd.q);

aleman 18.11.2012 17:03

Цитата:

Сообщение от Magneto
Функции вроде как являются уже объектами.

Являются, являются.. Но меня это не спасает.

Получается не возможно такое провернуть что я хочу?

melky 18.11.2012 17:13

Цитата:

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


Цитата:

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

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

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

// вместо этого {
B = function () {};
B.prototype = A;
B = new B();
// }
// можно было написать
// B = Object.create(A);

B.CASTOM = "castom!!!";

alert( A().custom );
alert( B.custom );
alert( A.custom );

alert(B.CASTOM);
alert(A.CASTOM);

aleman 18.11.2012 17:29

melky,
СПАСИБО!

Так работает. Ура!


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