Мне нравится, что в 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 #<Object> is not a function
Я также попробовал более сложный (и более правильный?) метод наследования, найденный здесь: Как правильно и quot; создать пользовательский объект в JavaScript?, не более удачи. Я также попытался использовать утилиту util.inherits(myFunctionClass, Function), найденную в node.js. Еще не повезло
Я исчерпал Google, и поэтому чувствую, что мне не хватает чего-то фундаментального или очевидного. Помощь будет принята с благодарностью.