在prototypejs中扩展名称空间

时间:2011-02-16 08:56:02

标签: javascript prototypejs javascript-framework

扩展课程,例如元素,在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

我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

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

 Object.extend(Form.Element, myFunctions);

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

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

    return element;
}