工廠模式

為了創(chuàng)建一系列相似的對象

//缺點: 每創(chuàng)建一個對象都會產(chǎn)生一個getName()副本, 并且無法確定對象類型
//優(yōu)點: 使用方便
function createPerson(name) {
  var person = { 
    getName: function() {
      return name;
    }, 
    setName: function(name) {
      this.name = name;
    }
  };
  return person;
}
var p1 = createPerson('erichow');
var p2 = createPerson('lufei');
//優(yōu)點:可以繼承
//缺點 : 沒有第一種方式簡單
function inherit(Klass, Base) {
  Klass.prototype = Object.create(Base.prototype);
  Klass.prototype.constructor = Klass;
  Klass.prototype.super = function() {
    Base.apply(this, arguments);
  }
}

function Person(name) {
  this.name = name;
}

Person.prototype.setName = function(name) {
  this.name = name;
}

function Student(name, age) {
  this.super(name);
  this.age = age;
}

inherit(Student, Person);

var p1 = new Person('erichow');
var s1 = new Student('lufei', 34);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容