在ECMAScript中,一些本机对象如何内置?

时间:2012-07-24 14:11:16

标签: javascript ecmascript-5

我认为需要定义本机和内置对象才能回答这个问题。以下是ECMAScript规范将其定义为:

  

4.3.6原生对象

     

ECMAScript实现中的对象,独立于主机环境,存在于开头   执行ECMAScript程序。

     

注意标准的本机内置对象在此定义   规格。 内置了一些原生对象;其他人可能会   在执行ECMAScript程序的过程中构建

     

4.3.7内置对象

     

ECMAScript实现提供的对象,与主机环境无关   在执行ECMAScript程序开始时

     

注意标准内置对象在本规范中定义,   ECMAScript实现可以指定和定义其他实现。一切   内置对象是一个本机对象。 内置构造函数是一个   内置对象也是一个构造函数。

我期待着解释这个。

2 个答案:

答案 0 :(得分:4)

以下是ES5 shows

  

4.3.6   原生对象#Ⓣ   ECMAScript实现中的对象,其语义完全由此规范定义,而不是由主机环境定义。

     

注意本规范中定义了标准本机对象。一些本机对象是内置的;其他可能是在执行ECMAScript程序的过程中构建的。

     

4.3.7   内置对象#Ⓣ   ECMAScript实现提供的对象,独立于主机环境,在ECMAScript程序执行开始时出现。

     

注意本规范中定义了标准内置对象,ECMAScript实现可以指定和定义其他对象。每个内置对象都是本机对象。内置构造函数是一个内置对象,也是一个构造函数。

正如您所看到的,与您所展示的内容不同。

内置对象是ECMAScript兼容引擎提供的本机对象。例如:

  • 字符串
  • 对象
  • 阵列
  • 未定义
  • 布尔

原生对象例如是:

var obj = {};

或之前显示的列表。内置对象是原生的。

此外,您没有显示它,但主机对象是依赖于环境的对象。例如,在浏览器中, 主机对象为window。还有其他主机对象,例如documentXMLHttpRequest

答案 1 :(得分:-2)

原生对象 - 表示不在ECMAScript本身中实现。内置对象 - 引擎提供的对象。想想数学,字符串等。