Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么(3).构造函数在;建造商;在第(3)项中是否无效?_Javascript_Constructor_Javascript Objects - Fatal编程技术网

Javascript 为什么(3).构造函数在;建造商;在第(3)项中是否无效?

Javascript 为什么(3).构造函数在;建造商;在第(3)项中是否无效?,javascript,constructor,javascript-objects,Javascript,Constructor,Javascript Objects,(3).构造函数是数字,但是(3)中的“构造函数”是TypeError,为什么?运算符中的规范解释了这一点。具体请参见语义评估的步骤5 11.8.7 in运算符 生产RelationalExpression:ShiftePression中的RelationalExpression的计算如下: 设lref为计算RelationalExpression的结果 设lval为GetValue(lref) 设rref为计算移位压力的结果 设rval为GetValue(rref) 如果Type(rval)不

(3).构造函数
是数字,但是(3)中的“构造函数”是TypeError,为什么?

运算符中的
规范解释了这一点。具体请参见语义评估的步骤5

11.8.7 in运算符

生产RelationalExpression:ShiftePression中的RelationalExpression的计算如下:

  • 设lref为计算RelationalExpression的结果
  • 设lval为GetValue(lref)
  • 设rref为计算移位压力的结果
  • 设rval为GetValue(rref)
  • 如果Type(rval)不是Object,则抛出一个TypeError异常
  • 返回使用参数ToString(lval)调用rval的[[HasProperty]]内部方法的结果
  • 构造器的工作原理要理解起来有点困难,但本质上,当你在一个带有基元的引用上使用点运算符时,它会被提升到一个对象中。

    使用,数字
    3
    会变成一个数字对象。这种类型的对象有一个构造函数,因此有一个
    构造函数
    属性


    但是,需要正确的表达式才能生成对象,但
    3
    不是对象,而是纯数字文字。

    我不理解你的问题。你能发布代码示例吗?我觉得问题很清楚。表达式
    ((3).constructor)
    返回数字函数,而表达式
    ((3)中的构造函数)
    抛出类型错误。关键是3的行为就像一个对象,所以它在
    中不能与
    一起工作这一事实令人困惑。在JS中,不是所有的东西最终都是一个对象吗?我以为那是Java,在JS中,除非有不同的指定,否则都只是var。然后我对JS一无所知。只知道java有100%OOP@cHao,@procleon-JavaScript具有“原始值”的概念,其中包括以下类型:未定义、Null、Boolean、Number、String。