コンストラクター関数内でのプロトタイプ メソッドの割り当て: 賢明でない実践
プロトタイプ オブジェクトを作成する場合、コンストラクター関数内でメソッドを割り当てるのが一般的です。自体。ただし、このアプローチでは、欠点や予期しないスコープの問題に関する懸念が生じます。
欠点:
実行時の結果:
パフォーマンスの点では、 (プロトタイプではなく) オブジェクトにメソッドを直接割り当てると、実行速度が向上します。これは、オブジェクト メソッドに直接アクセスすると、プロトタイプの検索がバイパスされるためです。
スコープに関する警告:
コンストラクター内でプロトタイプ メソッドを割り当てる方法は、複数のオブジェクトが存在するシナリオでは特に問題になる可能性があります。オブジェクトのインスタンスが存在します。提供されている Counter の例に見られるように、各インスタンスの get メソッドは、最後に作成されたインスタンスのコンストラクターの同じローカル変数を参照します。これにより、予期しない誤った動作が発生します。
推奨事項:
これらの問題を回避し、コードの信頼性を確保するには、コンストラクター関数の外側でプロトタイプ メソッドを割り当てることをお勧めします。これにより、明確さが促進され、スコープの問題が回避され、パフォーマンスが向上します。
以上がコンストラクター関数内でプロトタイプ メソッドを割り当てるのが賢明ではないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。