我想,要回答这个问题,需要一个本地和内置对象的定义。下面是ECMAScript规范将这些定义为:
4.3.6本机对象 ECMAScript实现中的一个独立于主机环境的对象,该对象在执行ECMAScript程序的开始时存在。 注本规范中定义了标准本机内建对象。一些本机对象是内置的;另一些则可能是在ECMAScript程序执行过程中构建的。 4.3.7内置对象 由独立于主机环境的ECMAScript实现提供的对象,该对象在执行ECMAScript程序的开始时存在。 注本规范中定义了标准内置对象,ECMAScript实现可以指定和定义其他对象。每个内置对象都是本机对象。内置构造函数是一个内置对象,也是一个构造函数.
我期待着对这件事的解释。
发布于 2012-07-24 14:28:11
以下是ES5显示
4.3.6 ECMAScript实现中的本机对象#T对象,其语义完全由本规范而不是由宿主环境定义。 注本规范中定义了标准本机对象。一些本机对象是内置的,另一些则可能是在执行ECMAScript程序的过程中构建的。 4.3.7 ECMAScript实现提供的内置对象#T对象,独立于ECMAScript程序执行开始时存在的主机环境。 注本规范中定义了标准内置对象,ECMAScript实现可以指定和定义其他对象。每个内置对象都是本机对象。内置构造函数是一个内置对象,也是一个构造函数.
正如你所看到的,你所展示的是不同的。
内置对象是由符合ECMAScript的引擎提供的本机对象。例如:
例如,本机对象是:
var obj = {};
或者之前显示的列表。内置对象是本机的。
而且,您没有显示它,但是宿主对象是依赖于环境的对象。例如,在浏览器中,主机对象是window
。不过,还有其他宿主对象,如document
或XMLHttpRequest
。
发布于 2012-07-24 14:14:55
本机对象--意思是没有在ECMAScript本身中实现。这是引擎提供的东西。想想数学,弦乐等等。
https://stackoverflow.com/questions/11632731
复制相似问题