-4

次のコードの違いを理解しようとしています。

Select.prototype.create = function(){

codes1......

}

Search.prototype.create = function(){

codes2......
}

どちらもコードは異なりますが、メソッドは同じです。なぜ、どのように機能するのかわかりません。誰かがそれについて私を助けることができますか?どうもありがとう。

4

2 に答える 2

1

Javascript 関数/メソッドは、名前だけでは一意ではありません。定義全体である Search.prototype.create は一意である必要があります。 Javascriptを使用すると、エラー/警告を発生させることなく定義を置き換えることができるためです。

Javascript は 2 つのメソッドを認識します。1 つは Search プロトタイプ チェーン上にあり、もう 1 つは Select プロトタイプ上にあります。これら 2 つのメソッドはたまたま同じように呼び出されますが、言語によっては関連性がありません。

多くの場合、他の言語または API では、のように使用される一般的な名前がlength, toString, call, dispose, replaceあり、リストはさらに続く可能性があります。

于 2012-08-30T00:24:05.253 に答える
1

これらは、2 つの異なるコンストラクターのプロトタイプで定義された同じメソッドです。Select と Search は、異なるオブジェクトのコンストラクターのように見えます (その名前が示すように)。あなたがした場合

var a = new Select(); a.create(); // これにより code1 が実行されます ....

var b = 新しい検索(); b.create(); // これにより code2 が実行されます ...

于 2012-08-29T23:41:11.297 に答える