方法一、 plainObject 对象字面量 / 对象直接量
var obj = {}
方法二.、构造方法
-
系统自带 new Obejct() / Array() / Number() / Boolean() / String() / Date()
var obj = new Object() //像一个工厂一样批量的生产对象,每个生产出来的对象都一样,但彼此独立,和第一种方法产生出来的对象没有区别
obj.name = 'abc'
obj.sex = 'male'
-
自定义
为了区分构造函数和普通函数 构造函数要使用大驼峰式命名规则(首字母大写)
function Person(){....} //构造函数和函数在结构上相同
var person = new Person()
方法三、 Object.create (proto , [propertiesObject])
使用现有的对象来提供要新创建的对象的__proto__(原型对象)
- 参数 proto:必填 。新创建对象的原型对象
- 参数 propertiesObject:可选。若没有指定默认为 undefined,有则是要添加到新创建对象的可枚举属性(即其自身定义的属性,而不是其原型链上的枚举属性)、对象的属性描述符以及相应的属性名称(一个对象)。
- 返回值:一个新对象,带着指定的原型对象和属性
如果propertiesObject参数不是 null 或一个对象,则抛出一个 TypeError 异常。
function Person(){}
var obj = Object.create(Person.prototype)