(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)不是对象,请扔一个 TypeError 例外。
  6. 返回使用参数ToString(LVAL)调用[[Hasproperty]]内部方法的结果。

原因 (3).constructor 作品要理解的工作更具挑战性,但是从本质上讲,当您在具有原始基础的引用上使用点运算符时,它将被提升为对象。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top