(3)。コンストラクタが有効であり、(3)の「コンストラクター」が有効であるのはなぜですか?

StackOverflow https://stackoverflow.com/questions/4097166

質問

(3).constructor 数字ですが、 "constructor" in (3) Typeerrorですか、なぜですか?

役に立ちましたか?

解決

を使用して プロパティアクセター, 、 番号 3 のオブジェクトに変わります 番号. 。そして、そのタイプのオブジェクトにはコンストラクターがあり、したがって constructor 財産。

だが Chaospandionがすでに指摘したように, 、 in オペレーター オブジェクトを生成するには正しい式が必要ですが 3 オブジェクトではなく、文字通りの単純な数字です。

他のヒント

の仕様 in オペレーターはこれを説明します。具体的には、セマンティック評価のステップ5を参照してください。

11.8.7オペレーター

生産リレーショナル発現:シフトエクスペレーションにおけるリレーショナル発現は、次のように評価されます。

  1. LREFをリレーショナル発現を評価した結果とします。
  2. lvalとGetValue(lref)とします。
  3. RREFをシフトエクスペレーションを評価した結果とします。
  4. rvalとGetValue(RREF)とします。
  5. タイプ(rval)がオブジェクトではない場合、 TypeRror 例外。
  6. [hasproperty]] rvalの内部方法を引数toString(lval)と呼ぶ結果を返します。

理由 (3).constructor 作品は理解するのが少し難しいですが、基本的には、原始的なベースを持つ参照でDOT演算子を使用すると、オブジェクトに持ち上げられます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top