为什么(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)不是对象,请扔一个 TypeError 例外。
- 返回使用参数ToString(LVAL)调用[[Hasproperty]]内部方法的结果。
原因 (3).constructor
作品要理解的工作更具挑战性,但是从本质上讲,当您在具有原始基础的引用上使用点运算符时,它将被提升为对象。
不隶属于 StackOverflow