ES5规范之对象 - pod4g/tool GitHub Wiki

  1. 对象是属性的集合,每个属性有零个或多个特性(attributes)它确定怎样使用此属性,属性是持有其他对象、原始值、函数的容器。

  2. 函数是可调用对象(callable object),方法是通过属性与对象关联的函数。

  3. 构造器是用来创建和初始化对象的函数对象。每个构造器(函数)是一个拥有名为prototype的属性的函数,此属性用于实现基于原型的继承和属性共享。

  4. 只要是对象,内部都有一个隐式地指向这个对象构造器的prototype属性的引用,在一些浏览器实现中用__proto__表示,callable object还有一个prototype属性,所以函数对象既有__proto__又有prototype

  5. 原生对象(native object):ECMAScript实现中,并非由宿主环境,而是完全由规范定义其语义的对象。

  6. 内置对象(built-in object):由ECMAScript实现提供,独立于宿主环境的对象,标准的内置对象由规范定义,ECMAScript实现可以指定和定义其他的,所有内置对象都是原生对象。

  7. 宿主对象(host object):由宿主环境提供的对象,用于完善ECMAScript执行环境。任何对象不是原生对象就是宿主对象。

  8. 全局对象(window or global)也是原生对象。因为它是内置对象而内置对象都是原生对象。