1. ホーム
  2. javascript

[解決済み] JavaScriptです。.extendと.prototypeは何に使うのですか?

2022-03-08 03:35:35

質問

私はJavaScriptの比較的新しいユーザーですが、使用しているサードパーティライブラリに.extendや.prototypeをよく見かけます。Prototype javascriptライブラリと関係があるのかと思っていましたが、そうではないと思い始めています。これらは何のために使われているのでしょうか?

解決方法は?

Javascriptの継承はプロトタイプベースなので、DateやMathなどのオブジェクトのプロトタイプを拡張し、さらに独自のカスタムオブジェクトを作成することも可能です。

Date.prototype.lol = function() {
 alert('hi');
};

( new Date ).lol() // alert message

上のスニペットでは、メソッドに すべて 日付オブジェクト(既存のものと新しいものすべて)。

extend は通常、ベースクラスから拡張したい新しいサブクラスのプロトタイプをコピーする高水準関数です。

というようなことができるわけです。

extend( Fighter, Human )

そして Fighter のプロトタイプを継承します。 Human のようなメソッドを定義した場合、そのメソッドは livedie について Human では Fighter はそれらも継承します。

説明文を更新しました。

.extendはビルトインではなく、jQueryやPrototypeなどのライブラリで提供されることが多いという意味です。