(3)。コンストラクタが有効であり、(3)の「コンストラクター」が有効であるのはなぜですか?
-
28-09-2019 - |
質問
(3).constructor
数字ですが、 "constructor" in (3)
Typeerrorですか、なぜですか?
解決
を使用して プロパティアクセター, 、 番号 3
のオブジェクトに変わります 番号. 。そして、そのタイプのオブジェクトにはコンストラクターがあり、したがって constructor
財産。
だが Chaospandionがすでに指摘したように, 、 in
オペレーター オブジェクトを生成するには正しい式が必要ですが 3
オブジェクトではなく、文字通りの単純な数字です。
他のヒント
の仕様 in
オペレーターはこれを説明します。具体的には、セマンティック評価のステップ5を参照してください。
11.8.7オペレーター
生産リレーショナル発現:シフトエクスペレーションにおけるリレーショナル発現は、次のように評価されます。
- LREFをリレーショナル発現を評価した結果とします。
- lvalとGetValue(lref)とします。
- RREFをシフトエクスペレーションを評価した結果とします。
- rvalとGetValue(RREF)とします。
- タイプ(rval)がオブジェクトではない場合、 TypeRror 例外。
- [hasproperty]] rvalの内部方法を引数toString(lval)と呼ぶ結果を返します。
理由 (3).constructor
作品は理解するのが少し難しいですが、基本的には、原始的なベースを持つ参照でDOT演算子を使用すると、オブジェクトに持ち上げられます。
所属していません StackOverflow