JavaScript 原生对象及扩展

540 查看

内置对象与原生对象

内置(Build-in)对象与原生(Naitve)对象的区别在于:前者总是在引擎初始化阶段就被创建好的对象,是后者的一个子集;而后者包括了一些在运行过程中动态创建的对象。

2993868520-5518de2b15e17_articlex

原生对象(New后的对象)

ECMA-262 把原生对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。包括如下:

由此可以看出,简单来说,原生对象就是 ECMA-262 定义的类(引用类型)。

来源: http://es5.github.com/#x4.3.6

内置对象(不需要New)

定义:由ECMAScript实现提供的对象,独立于宿主环境,在一个脚本程序执行的开始处。

:每个内置对象(built-in object)都是原生对象(Native Object),一个内置的构造函数是一个内置的对象,也是一个构造函数。

来源:http://es5.github.io/#x4.3.7

举个栗子:

ECMA-262][2 只定义了两个新的内置对象,即 GlobalMath (它们也是原生对象,根据定义,每个内置对象都是原生对象)。

以下是ECMA-262定义的内置对象(built-in):

3209960796-551a9ed6cc4af_articlex

我们也可以修改内置对象的原型

以上代码将输出:

注意:扩展原型是很危险的: