对象的分类
JavaScript中的对象大致分成以下几类:
宿主对象(host Objects):由JavaScript宿主环境提供的对象,它们的行为完全由宿主环境决定。
内置对象(Built-in Objects):由JavaScript语言提供的对象。
固有对象(Intrinsic Objects ):由标准规定,随着JavaScript运行时创建而自动创建的对象实例。
原生对象(Native Objects):可以由用户通过Array、RegExp等内置构造器或者特殊语法创建的对象。
普通对象(Ordinary Objects):由{}语法、Object构造器或者class关键字定义类创建的对象,它能够被原型承。
宿主对象:
宿主对象也分为固有的和用户可创建的两种,比如document.createElement就可以创建一些DOM对象。宿主也会提供一些构造器,比如我们可以使用new Image来创建img元素。
内置对象.固有对象
固有对象是由标准规定,随着JavaScript运行时创建而自动创建的对象实例。固有对象在任何JavaScript代码执行前就已经被创建出来了,它们通常扮演者类似基础库的角色。'类'其实就是固有对象的一种。
内置对象.原生对象
我们把JavaScript中,能够通过语言本身的构造器创建的对象称作原生对象。在JavaScript标准中,提供了30多个构器。
通过这些构造器,我们可以用 new 运算创建新的对象,所以我们把这些对象称作原生对象。
在JavaScript中,还有一个看待对象的不同视角,这就是用对象来模拟函数和构造器。JavaScript为这一类对象预留了私有字段机制,并规定了抽象的函数对象与构造器对象的概念。
函数对象的定义是:具有call私有字段的对象。
构造器对象的定义是:具有私有字段construct的对象。