ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のプロトタイプ メソッドとコンストラクター メソッド: 本当に速いのはどちらか?
JavaScript では、クラスのパブリック メソッドを定義するには、プロトタイプを使用する方法とコンストラクターを使用する方法の 2 つがあります。関数。プロトタイプのアプローチは、共有関数参照により効率的であると言われていますが、潜在的なパフォーマンスへの影響を考慮する必要があります。
function MyClass() { var privateInstanceVariable = 'foo'; this.myFunc = function() { alert(privateInstanceVariable ); } }
この方法では、クラスの各インスタンスには、独自のプライベート インスタンス変数と、myFunc メソッドの独自のコピーがあります。
function MyClass() { } MyClass.prototype.myFunc = function() { alert("I can't use private instance variables. :("); }
ここでは、myFunc メソッドが定義されています。クラスのプロトタイプ。すべてのインスタンスは同じ関数参照を共有するため、パフォーマンスが向上する可能性があります。
JavaScript パフォーマンス テスト (https://jsperf.app/prototype-vs-this) によると、メソッドの宣言プロトタイプ経由の方が確かに高速です。ただし、この違いの重要性には疑問があります。
何千ものオブジェクトの作成と破棄を繰り返していない限り、パフォーマンスへの影響はおそらく無視できるでしょう。ほとんどの場合、コードの読みやすさと保守性にとってより意味のあるアプローチを使用することがより重要です。
方法 1 はプライベート インスタンス変数をサポートしていますが、それらはプライベート インスタンス変数であることに注意することが重要です。 従来のみプライベートとみなされます。開発者は希望に応じて引き続きアクセスできます。外部アクセスから変数を保護するには、先頭にアンダースコアを付けて宣言するか (_process() など)、カプセル化を強制するカスタムのゲッターとセッターを実装することを検討してください。
以上がJavaScript のプロトタイプ メソッドとコンストラクター メソッド: 本当に速いのはどちらか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。