オブジェクトがインスタンス化された後、それに新しい属性を持たせたい場合は、プロトタイプを介して追加するしかありませんか?コンストラクターを変更できないのはなぜですか?
その理由は、オブジェクトがインスタンス化された後は、そのプロパティとメソッドの存在がコンストラクターとは何の関係もないからでしょうか?
大家讲道理2017-05-19 10:31:49
プロトタイプはプロトタイプチェーンと呼ばれます。
1. オブジェクトがインスタンス化された後、Object.name を使用して直接追加できます。プロトタイプ チェーンを通じて追加されたものに関しては、追加されたパブリック プロパティであり、同じクラス インスタンスを通じて他のオブジェクトからアクセスできます。
2. インスタンス化されたオブジェクトはプロトタイプ チェーンにアクセスできません。プロトタイプ チェーンは Class でのみ使用でき、プロトタイプ チェーンの属性とメソッドは Class.prototype を通じて追加されます。コンストラクターはプロトタイプ チェーン メソッドにも属します。インスタンスを渡した後に取得したコンストラクターを変更することはできますが、Class のコンストラクターには影響せず、Class.prototype の変更に応じて変更されます。
プロトタイプチェーンで定義されたプロパティとメソッドを使用したいインスタンス化されたオブジェクトについては、Object.name を直接使用できます。
プロトタイプ チェーンについては、Baidu にたくさんありますので、読んでみてください。
私も初心者なので、欠点があれば指摘したいと思います。