【发布时间】:2011-05-02 17:27:04
【问题描述】:
有可能做这样的事情吗?
Foo.add_function = function (callback_name, callback_function) {
this.prototype[callback_name] = callback_function;
}
我需要以数组表示法向原型添加一个函数。谢谢。
【问题讨论】:
-
@thom 所以你希望能够做到这一点:
Foo.add_function('blah', function() { ... });而不是这个:Foo.prototype['blah'] = function() { ... };? -
是的,但是 this.prototype 返回 undefined
-
为什么这必须是一个函数?谢谢 SLaks。
-
@thom 因为向
Foo.prototype添加方法只有在您以后要使用这些方法时才有意义。您可以像这样创建Foo的实例:var foo1 = new Foo();,然后在这些实例上调用原型方法:foo1.blah()。如果Foo不是函数,则不能创建它的实例,因此拥有prototype对象毫无意义。 -
@thom:
prototype是函数的属性。不是函数的东西没有prototype属性。
标签: javascript arrays prototype notation function-prototypes