Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по наследованию. Наследование Function. (https://javascript.ru/forum/misc/34718-vopros-po-nasledovaniyu-nasledovanie-function.html)

darkartur 16.01.2013 14:09

Вопрос по наследованию. Наследование Function.
 
Почему это не работает?

var Class = function() {

};
var Tmp = function() { }
Tmp.prototype = Function.prototype
Class.prototype = new Tmp()
Class.prototype.constructor = Class;

var a = new Class();
console.log(a instanceof Function);//Возвращает true
var b = new a();//Однако эта строчка не работает

Gvozd 16.01.2013 14:45

А почему вы решили что должно работать, и как оно по вашему должно работать?
Например при вызове new Class() будет выполнен код написанный в строчке 2.
Какой код по вашему должен выполняться при new a()?
И вообще, а - это просто объект типа Function, а вовсе не функция.
Проверьте с помощью typeof

darkartur 16.01.2013 15:08

Цитата:

Сообщение от Gvozd (Сообщение 227554)
А почему вы решили что должно работать, и как оно по вашему должно работать?
Например при вызове new Class() будет выполнен код написанный в строчке 2.
Какой код по вашему должен выполняться при new a()?
И вообще, а - это просто объект типа Function, а вовсе не функция.
Проверьте с помощью typeof

Насчёт кода - я планировал использовать что-то вроде
var Class = function(constructor) {
        Function.constructor.call(this,constructor.toString());
};

Однако что такое объект типа Function и чем он отличается от function?


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