Мне нравится это в javascript, я могу создать функцию, а затем добавить дополнительные методы и атрибуты к этой функции
myInstance = function() {return 5}
myInstance.attr = 10
Я хотел бы создать класс для создания этих объектов. Я предполагаю, что мне нужно унаследовать от базового класса Function.
Другими словами, я хотел бы:
var myInstance = new myFunctionClass()
var x = myInstance()
// x == 5
Но я не знаю, как создать myFunctionClass. Я пробовал следующее, но это не сработало:
var myFunctionClass = function() {Function.call(this, "return 5")}
myFunctionClass.prototype = new Function()
myInstance = new myFunctionClass()
myInstance()
// I would hope this would return 5, but instead I get
// TypeError: Property 'myInstance' of object #
Я также пробовал более сложный (и более подходящий?) Метод наследования, найденный здесь: Как «правильно» создать пользовательский объект в JavaScript? , больше не повезло. Я также пробовал использовать util.inherits (myFunctionClass, Function) из node.js. По-прежнему не повезло
Я исчерпал возможности Google и поэтому чувствую, что мне не хватает чего-то фундаментального или очевидного. Помощь будет принята с благодарностью.