JavaScript では、開発者がクラスを作成し、そのパブリック メソッドを定義するには、プロトタイプを使用するか、これを使用するという 2 つの主なオプションがあります。コンストラクター内で。これらのアプローチの効率性は議論の対象となってきましたが、実際の経験から、パフォーマンスの違いの実際的な重要性が明らかになりました。
プロトタイプを使用する方法 1 では、通常、メソッド アクセスが高速化されます。クラスは同じ関数参照を共有します。ただし、このメソッドではプライベート インスタンス変数の使用が禁止されています。
これをコンストラクターで使用するメソッド 2 では、プライベート インスタンス変数が許可されますが、理論的には、各インスタンスが独自のインスタンスを作成するためにより多くのメモリと時間が必要になります。 function copy.
これらの理論的な仮定に反して、Web ブラウザーは多くの場合、そのようなシナリオに合わせて最適化されます。関数のコピーを認識して共有することで、個別の関数割り当てによる潜在的なメモリとパフォーマンスのオーバーヘッドを無効にすることができます。
経験的な証拠がこの最適化を裏付けています。 jsperf.app/prototype-vs-this は、プロトタイプ メソッドの速度上の利点を一貫して示しています。
ただし、このパフォーマンスの違いが実際に与える影響については議論の余地があります。ほとんどのシナリオでは、膨大な数のオブジェクトが急速にインスタンス化されない限り、パフォーマンスのボトルネックの原因になる可能性は低いです。
パフォーマンスが重要な要素となるまれなケースでは、プロトタイプ メソッドの使用などの微細な最適化が必要となる場合があります。価値のある。ただし、一般的な開発では、個人の好みとコードの明瞭さに合わせた方法を選択する方が、より効果的である可能性があります。
さらに、プライベート変数の前にアンダースコアを付ける JavaScript の規則 (_process()) は、暗黙のプライバシー層を提供します。 。開発者はこの慣例を尊重するかもしれませんが、ほとんどの場合、真のプライバシーを強制する必要はありません。
以上がプロトタイプ メソッドとコンストラクター関数: JavaScript ではどちらのパフォーマンスが優れていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。