2

我想回答这个问题需要对本机和内置对象进行定义。以下是 ECMAScript 规范将这些定义为:

4.3.6 原生对象

ECMAScript 实现中的对象,独立于宿主环境,在 ECMAScript 程序执行开始时出现。

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

4.3.7 内置对象

由 ECMAScript 实现提供的对象,独立于宿主环境,在 ECMAScript 程序执行开始时存在

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

我期待着对此的解释。

4

2 回答 2

4

这是ES5 显示的内容:

4.3.6 native object # Ⓣ 在 ECMAScript 实现中的对象,其语义完全由本规范定义,而不是由宿主环境定义。

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

4.3.7 built-in object # Ⓣ 由 ECMAScript 实现提供的对象,独立于宿主环境,在 ECMAScript 程序执行开始时出现。

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

如您所见,它与您所展示的不同。

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

  • 细绳
  • 目的
  • 大批
  • 不明确的
  • 布尔值
  • 等等

例如,本机对象是:

var obj = {};

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

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

于 2012-07-24T14:28:11.123 回答
-3

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

于 2012-07-24T14:14:55.703 回答