6

Form オブジェクトでプロトタイプを使用する機会はありますか?これは機能しません:

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

一方、String オブジェクトは拡張可能です。次に例を示します。

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

2 に答える 2

9

あなたが意味するならHTMLFormElement、それは

HTMLFormElement.prototype.myFunc=function() {
  alert('OK!');
};
于 2012-07-11T08:19:16.493 に答える
1

DOM オブジェクトが何らかの種類の継承を実装することを要求する仕様はありません。プロトタイプの継承はなおさらです。そうは言っても、多くのブラウザはそうしていますが、標準化されておらず、普遍的に実装されていません.

DOM 拡張の何が問題なのかを読みたいと思うかもしれません。

DOM 要素のプロトタイプ継承スキームを実装するブラウザーでは、HTMLFormElement.prototype次のようなものを使用して拡張を試すことができます。

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

    // extend HTMLFormElement.prototype

}

ただし、ホスト オブジェクトの動作は完全に実装に依存することに注意してください。上記は、エラーをスローするなど、何でも行うことができます。

于 2012-07-11T08:28:11.123 に答える