オブジェクト指向プログラミングにおける JavaScript の解釈は、特にコンストラクター プロパティに関して混乱を招く可能性があります。明らかに影響力がないことから、多くの人がその有用性を疑問視しています。
コンストラクター プロパティは、プログラムの動作に直接影響しませんが、オブジェクトを作成するために使用される関数に関する情報を提供します。新しいオペレーター。提供された例では:
function Foo(age) { this.age = age; } function Bar() { Foo.call(this, 42); this.name = "baz"; } Bar.prototype = Object.create(Foo.prototype); var b = new Bar; alert(b.constructor); // "Foo". alert(b.name); // "baz". alert(b.age); // "42".
オブジェクト b は Foo の age プロパティを正しく継承します。ただし、Bar.prototype.constructor = Bar を設定するという提案は、次の理由から生じる可能性があります。
プロトタイプ プロパティは、オブジェクト内に見つからないプロパティの検索動作を定義します。 x.__proto__ プロパティは、x オブジェクトのプロトタイプ オブジェクトを指します。上の例では、x__proto__ = Bar.prototype.
ここで、なぜ手動で Bar.prototype.constructor = Bar:
を設定するのかという質問に対処します。このアクションにより、Bar.prototype オブジェクトが Foo ではなく Bar の ID を想定できるようになります。その理論的根拠は、古典的な継承モデルと同様の型検索動作をエミュレートすることです。
ただし、専門家は、JavaScript の継承概念に大きく依存しないようにアドバイスしています。代わりに、インターフェイスとミックスインの使用を検討してください。さらに、型ではなくプロパティをチェックすると、混乱を防ぐことができます。
コンストラクターとプロトタイプのプロパティの役割を理解することで、プログラマーは JavaScript のオブジェクト指向プログラミング機能を効果的に操作できます。
以上がJavaScript コンストラクター プロパティが重要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。