javascriptのプロトタイプをいつどのように/いつ使用するのかよくわかりません。私は、プロパティを割り当てるこれら二つの方法の違いを理解する:javascriptオブジェクトにインスタンスではなく静的プロパティを作成するのは適切なのはいつですか?
静的プロパティを
var Date = function() {};
Date.setTime = function (key) {
};
Date.updateTime = function (key, value) {
};
のsetTimeとupdateTime直接日付オブジェクトに追加のプロパティです。
インスタンスのプロトタイプ
var Date = function() {};
Date.prototype.setTime = function (key) {
};
Date.prototype.updateTime = function (key, value) {
};
のsetTimeにプロパティを割り当てるとupdateTimeは、日付のインスタンスが継承するプロパティを定義しています。
私の質問インスタンス/プロトタイプまたはオブジェクト(静的変数)にプロパティを割り当てる必要があるときは、どのように知っていますか?変数をオブジェクトに直接割り当てるのはいつ決めるべきですか?すべてのインスタンスで変数を使用できるようにするのはいつですか?
まあ 'Date.now()' Date.prototype.getFullYearは() ''そうではない、任意の特定の既存のDateインスタンスへの参照せずに理にかなっているようなもの。それはあなたが求めていることですか? – Pointy
@Pointy私の質問は、オブジェクトに直接変数を割り当て、すべてのインスタンスで変数を使用できるようにすることです。 –
この関数が特定のインスタンスと何も関係しない場合は、コンストラクタ自体に行くことができます。インスタンスが関与している(例えば、コード内で 'this.something 'を参照しなければならないような)ときに関数が意味をなさないのであれば、**はプロトタイプ上にあり、インスタンスに利用可能です**。 – Pointy