我喜欢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
我还尝试了更复杂(也更正确?)的继承方法,从这里找到: 如何“正确”创建JavaScript中的自定义对象,但是没有更多的运气。我还尝试了在node.js中找到的util.inherits(myFunctionClass, Function)。仍然没有运气。
我已经用尽了Google,因此感觉自己必须缺少一些基本或明显的东西。非常感谢您的帮助。
[[prototype]]
是不可能做到的。我不知道在第5版中是否有一种巧妙的方法可以实现这一点。"传统"的方法 - 例如jQuery中使用的方法 - 是从"原型"中复制单个属性,而不使用原型继承。 - user166390