native object,built-in object,host object,host environment

时间:2023-01-15 20:55:56

ECMA262:

Host environment:

宿主环境:程序的运行环境,如C#的CLR是执行很多编程语言的环境,对于脚本语言比如运行的浏览器,os等运行环境,举个形象例子,常常在中国的鬼片里看到的鬼上身,那个被鬼附体的倒霉蛋就是所谓宿主环境,至于这个倒霉蛋是个美眉还是恐龙那就是多种多样,千奇百怪,所以宿主环境也是一样,很多种浏览器,各种标准不同,使得我们写代码要尽量去兼容各种情况,呕心沥血,死而后已还不见得有好下场,BS之。

4.3.6 native object 

object in an ECMAScript implementation whose semantics are fully defined by this specification rather than by the host environment. 

NOTE 

Standard  native  objects  are defined in  this  specification. Some native objects are built-in; others may be constructed during the course of execution of an ECMAScript program. 

本地对象:

   本地对象指的是由 ECMAScript 实现提供并独立于宿主环境的任何对象。

注意:

这篇规范定义了 标准本地对象。有些本地对象是内置的 ;其余的可能在 ECMAScript 程序执行的过程中被创建

ex:

Object、Function、Array、String、Boolean、Number、

Date、RegExp、Error、EvalError、RangeError、

ReferenceError、SyntaxError、TypeError、URIError........

 

4.3.7 built-in object 

object supplied by an ECMAScript implementation, independent of the host environment, that is present at the start of the execution of an ECMAScript program. 

NOTE  

Standard built-in objects are defined in this specification, and an ECMAScript implementation may specify and define others. Every built-in object is a native object. A built-in constructor is a built-in object that is also a constructor. 

内置对象:

  内置对象指 的是由 ECMAScript 实现提供的,独立于宿主环境的,并在 ECMAScript 程序 刚开始执行时就出现的对象。

注意:

  这篇规范定义了标准内置对象,一个 ECMAScript 实现也可能指明并定义其它的内置对象。所有的内置对象都是本地对象。

内置对象不需要实例化,也局势不需要 new()就是可以直接使用。ECMAScript定义了两个内置对象:

  Global 和 Math (它们也是本地对象,根据定义,每个内置对象都是本地对象)。

[关于Global object详见ECMA-262.15.1 The Global Object ]

4.3.8 host object 

object supplied by the host environment to complete the execution environment of ECMAScript. 

NOTE          

Any object that is not native is a host object. 

宿主对象指的是由 ECMAScript 实现提供的,使 ECMAScript 的执行环境变得完备的对象。 

所有非本地对象都是宿主对象。 DOM,BOM,自定义对象