【问题标题】:extending a namespace in prototypejs在prototypejs中扩展命名空间
【发布时间】:2011-06-28 05:08:05
【问题描述】:

扩展一个类,例如元素,在 Prototype.js 中,我是这样做的(如果发生变化,请更新我)

var myFunctions = {

    custom: function(element)   
    {
        # yadda yadda

        return element;
    }

};


Element.addMethods(myFunctions);

现在原型有一些命名空间,比如 Form。我想扩展 Form.Element,因为我需要一些自定义函数来处理我的表单输入。

尝试

Form.Element.addMethods(myFunctions);

抛出

Error: Form.Element.addMethods is not a function

我怎样才能正确地做到这一点?

【问题讨论】:

    标签: javascript prototypejs javascript-framework


    【解决方案1】:

    addMethods()Class 的一个方法。 Element 是一个类。 FormForm.Element 是对象。尝试使用Object.extend()

     Object.extend(Form.Element, myFunctions);
    

    或者更简单地说,因为每个对象都是一个唯一的实例,您可以直接对其进行处理。虽然Object.extend在添加多个函数时看起来更整洁。

    Form.Element.custom = function(element)   
    {
        # yadda yadda
    
        return element;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 1970-01-01
      • 2016-01-21
      • 2020-02-19
      • 2012-01-08
      相关资源
      最近更新 更多