これを使って
var Class1 = function() {
this.test1 = function() {
};
};
そして次の
function Class1() {
};
Class1.prototype.test1 = function() {
};
その2つに違いはありますか?
これを使って
var Class1 = function() {
this.test1 = function() {
};
};
そして次の
function Class1() {
};
Class1.prototype.test1 = function() {
};
その2つに違いはありますか?
最初のものは、クラス インスタンスごとに関数の個別のコピーを作成します。
また、関数がコンストラクターからクロージャ変数を使用できるようにします。
後者を効率的に使用します。
JavaScript の関数はオブジェクトです。JavaScript のすべてのオブジェクトは、オブジェクトのプロトタイプと呼ばれる別のオブジェクトへの参照である、隠れた状態を保持しています。
プロトタイプを使用すると、複数のオブジェクトが同じプロトタイプ オブジェクトへの参照を維持できます。
これは、js のプロトタイプがどのように機能するかを知るための優れたリファレンスです。
パフォーマンスにも影響する違いがあります。
最初のものは作成されたクラスの各インスタンスに関数を追加しますが、後者はそうしません。prototype
後者のメソッドの場合、JavaScript はオブジェクトのチェーンを調べ、必要なメソッドを返しtest1
ます。
はい、あります。見る
2 つの (独立した) 違いについて。