【问题标题】:JavaScript - Add function to prototype using array notatioJavaScript - 使用数组表示法向原型添加函数
【发布时间】: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


【解决方案1】:

是的。
prototype 是普通对象;这将工作正常。

请注意,这仅在 this 是一个函数时才有效;否则,prototype 将不存在。

【讨论】:

    【解决方案2】:

    显然,是的:

    http://jsfiddle.net/QUFXU/6/

    jsfiddle 很棒,当你想测试像这样简单的东西时,你应该看看它。

    【讨论】:

      猜你喜欢
      • 2014-05-26
      • 2020-08-13
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      相关资源
      最近更新 更多