1.最常见的肯定是字面量创建
(字面量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量)
let obj = {
name:"Alan",
say(){}
}
2.构造函数创建
function A(){}
let obj = new A();
ES6的class属于构造函数创建的语法糖:
class A{
constructor(name){
this.name = name;
}
}
let a = new A("Alan");
其中,a.__proto__ === A.prototype , A.prototype.__proto__ === Object.prototype
上两种比较重要
3.工厂模式
function objFactory(name){
let obj = {name:name}
return obj;
}
let obj = objFactory("Alan");
4.Object.create()
let a = {name:"alan"}
let b = Object.create(a)
其中,b.__proto__ === a