使用原型扩展Javascript Form对象

时间:2012-07-11 08:15:51

标签: javascript forms prototype

是否有机会在Form对象上使用原型,这不起作用:

Form.prototype.myFunc=function()
{
  alert('OK!');
}

另一方面,String对象是可扩展的,例如:

String.prototype.trim = function() {
  return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

2 个答案:

答案 0 :(得分:9)

如果您的意思是HTMLFormElement,那么它应该是

HTMLFormElement.prototype.myFunc=function() {
  alert('OK!');
};

答案 1 :(得分:1)

没有规范要求DOM对象实现任何类型的继承,更不用说原型继承了。话虽如此,许多浏览器都这样做,但它没有标准化或普遍实现。

您可能希望阅读What’s wrong with extending the DOM

在为DOM元素实现原型继承方案的浏览器中,您可以尝试使用以下内容扩展HTMLFormElement.prototype

if (typeof HTMLFormElement == 'object' && 
    typeof HTMLFormElement.prototype == 'object') {

    // extend HTMLFormElement.prototype

}

但请注意,主机对象的行为完全取决于实现。以上可能会做任何事情,包括抛出错误。