创建对象的几种方式

175 阅读1分钟

前言:我们一般使用字面量的形式直接创建对象,但是这种创建方式对于创建大量相似对象的时候,会产生大量的重复代码。但 js 和一般的面向对象的语言不同,在 ES6 之前它没有类的概念。但是我们可以使用函数来进行模拟,从而产生出可复用的对象

创建方式,我了解到的方式有这么几种:

1.对象字面量{}

var obj = {
  a: 1,
  b: function() {
    ...
  }
}

2.new Object方法

var obj = new Object()
obj.a = 1;

3. 工厂函数

function createObj(a) {
  var obj = new Object()
  obj.a = a;
  return obj;
}
var person = createObj(1)

4. 自定义构造函数

function Obj(a) {
  this.a = a;
}
var obj = new Obj(1)

5. 原型模式

function Person(){
}
Person.prototype.name = "zs";
Person.prototype.age = 21;
Person.prototype.family = ["ls","ww","zl"];
Person.prototype.say = function(){
  console.log(this.name)
}

6.混合模式

function Person(ame,age,family){
  this.name = name;
  this.age = age;
  this.family = family;
}
Person.prototype = {
  constructor: Person, 
  say: function(){
    alert(this.name);
}

高程中还提到了动态原型模式,寄生构造函数模式,稳妥构造函数模式

Last but not least

如有不妥,请多指教呀~