私は JavaScript をあまり使い始めたばかりですが、使用しているサードパーティのライブラリで .extend と .prototype が頻繁に表示されます。これは Prototype JavaScript ライブラリに関係していると思っていましたが、そうではないのではないかと思い始めています。これらは何に使用されているのでしょうか?
ベストアンサー1
Javascript の継承はプロトタイプベースなので、Date、Math、さらには独自のカスタムオブジェクトなどのオブジェクトのプロトタイプを拡張できます。
Date.prototype.lol = function() {
alert('hi');
};
( new Date ).lol() // alert message
上記のコードでは、メソッドを定義しています。全て日付オブジェクト (既存のものおよびすべての新しいもの)。
extend
は通常、基本クラスから拡張する新しいサブクラスのプロトタイプをコピーする高レベル関数です。
したがって、次のようなことができます。
extend( Fighter, Human )
また、Fighter
コンストラクタ/オブジェクトは のプロトタイプを継承するため、 でやなどHuman
のメソッドを定義すると、もそれらを継承します。live
die
Human
Fighter
更新された説明:
「高レベル関数」とは、.extend が組み込まれておらず、jQuery や Prototype などのライブラリによって提供されることが多いことを意味します。