創(chuàng)建對象模式

1.工廠模式

這種模式抽象了創(chuàng)建具體對象的過程

function createPerson () {
  var o = new Object();
  o.name = name;
  o.age = age;
  o.job = job;
  o.sayName = function () {
    alert(this.name)
  }
}
var person1 = createPerson('silva', 29, 'IT');

2.構(gòu)造函數(shù)模式

function Person (name, age) {
    this.name = name;
    this.age = age;
    this.say = function () {
        console.log('hello');
    }
}

var p1 = new Person('silva', 26);
var p2 = new Person('jimmy', 29);
// 備注:  要創(chuàng)建Person的新的實例垮刹,必須使用new操作符适篙。
// 以這種方式調(diào)用構(gòu)造函數(shù)實際上經(jīng)歷以下4個步驟:
// 1.創(chuàng)建一個新的對象
// 2.將構(gòu)造函數(shù)的作用域賦值給新對象(因此this就指向了這個新對象)
// 3.執(zhí)行構(gòu)造函數(shù)中的代碼
// 4.返回新的對象

3.原型模式

function Person () {}

Person.prototype = {
    constructor: Person,
    name: 'silva',
    age: 29,
    sayName: function () {
        console.log(this.name);
    }
}

var person1 = new Person();
person1.sayName();

4.組合使用構(gòu)造函數(shù)模式和原型模式

構(gòu)造函數(shù)模式用于定義實例屬性碳抄,原型模式用于定義方法和共享屬性

function Person (name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
}

Person.prototype = {
    constructor: Person,
    sayName: function () {
        console.log(this.name);
    }
}

var person1 = new Person('silva', 29, 'IT');

5.動態(tài)原型模式

// 把所有信息都封裝在構(gòu)造函數(shù)中
function Person (name, age, job) {
    this.name = name;
    this.age = age;
    this.job = job;
    if (typeof this.sayName != 'function') {
        Person.prototype.sayName = function () {
            console.log(this.name);
        }
    }
}
var person1 = new Person('silva', 29, 'IT');

6.寄生構(gòu)造函數(shù)模式

// 這種模式的基本思想是創(chuàng)建一個函數(shù),該函數(shù)的作用僅僅是封裝創(chuàng)建對象的代碼舌稀,然后再返回新創(chuàng)建的對象
function Person(name, age, job) {
    var o = new Object();
    o.name = name;
    o.age = age;
    o.job = job;
    o.sayName = function () {
        console.log(this.name);
    };
    return o;
}
var friend = new Person('Mike', 18, 'student');
friend.sayName();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啊犬,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子扩借,更是在濱河造成了極大的恐慌椒惨,老刑警劉巖缤至,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潮罪,死亡現(xiàn)場離奇詭異,居然都是意外死亡领斥,警方通過查閱死者的電腦和手機嫉到,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來月洛,“玉大人何恶,你說我怎么就攤上這事〗狼” “怎么了细层?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵惜辑,是天一觀的道長。 經(jīng)常有香客問我疫赎,道長盛撑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任捧搞,我火速辦了婚禮抵卫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胎撇。我一直安慰自己介粘,他們只是感情好,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布晚树。 她就那樣靜靜地躺著姻采,像睡著了一般。 火紅的嫁衣襯著肌膚如雪题涨。 梳的紋絲不亂的頭發(fā)上偎谁,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機與錄音纲堵,去河邊找鬼巡雨。 笑死,一個胖子當著我的面吹牛席函,可吹牛的內(nèi)容都是我干的铐望。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼茂附,長吁一口氣:“原來是場噩夢啊……” “哼正蛙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起营曼,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤乒验,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蒂阱,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锻全,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年录煤,在試婚紗的時候發(fā)現(xiàn)自己被綠了鳄厌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡妈踊,死狀恐怖了嚎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤歪泳,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布萝勤,位于F島的核電站,受9級特大地震影響呐伞,放射性物質(zhì)發(fā)生泄漏纵刘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一荸哟、第九天 我趴在偏房一處隱蔽的房頂上張望假哎。 院中可真熱鬧,春花似錦鞍历、人聲如沸舵抹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惧蛹。三九已至,卻和暖如春刑枝,著一層夾襖步出監(jiān)牢的瞬間香嗓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工装畅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留靠娱,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓掠兄,卻偏偏與公主長得像像云,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蚂夕,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容