2

Mozilla JS Guide の次の記事を読んでいます。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Examples

Object.create を使用したクラシック継承の例では、作成者が次の行 (行番号 21) を追加した理由を理解できません。

Rectangle.prototype.constructor = Rectangle;

古典的な継承には必要ですか?Plsはあなたの答えを正当化します。

4

1 に答える 1

3

ECMAScript-262 Edition 5.1 では、constructor プロパティは関数オブジェクトでのみ設定されます。13.2 関数オブジェクトの作成(手順 17)を参照してください。

言語自体によって読み取られたり使用されたりすることはありません。

特に、

obj instanceof C

コンストラクタ プロパティを使用しません。

C.prototype.isPrototypeOf(obj)

したがって、それを作成せず、それを使用するフレームワークを使用しない場合は、constructor プロパティを無視できます。

詳細については、「コンストラクター」プロパティの概要を参照してください。

于 2013-09-15T19:04:15.550 に答える