JavaScript:主机对象也是本机对象的示例是什么

JavaScript: What is an example for a host object that is also a native object?

本文关键字:对象 是什么 本机 主机 JavaScript      更新时间:2023-09-26

本机对象是由ECMAScript规范定义的对象或对象类。数组、函数、日期和正则表达式(例如)都是本机对象。

主机对象是由嵌入JavaScript解释器的主机环境(如web浏览器)定义的对象。[…]主机对象也可能是本机对象,就像主机环境定义的方法是普通的JavaScript函数对象一样。

[JavaScript:TheDefinitiveGuide,作者:David Flanagan(O'Reilly)。版权所有2011 David Flanagan978-0-596-80552-4.]

主机对象(由主机环境定义)如何成为本机对象(需要由规范定义)?你能举一个上述方法的例子吗?

ES5有以下定义:

4.3.6本机对象:ECMAScript实现中的对象,其语义完全由本规范定义,而不是由主机环境。

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

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

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

4.3.8主机对象:主机环境提供的对象,用于完成ECMAScript的执行环境。

注:任何非本机对象都是主机对象。

最后一条注释似乎不明确,但我读到的意图是本机对象不是宿主对象(我可能错了)。

ES2015中的命名法发生了变化。此处未使用"本机对象"一词。单词"native"仅出现在NativeError的上下文中。然而,使用了术语"内置对象"answers"对象和设施的宿主环境"。

相关文章: