8.3

構(gòu)造函數(shù)

說構(gòu)造函數(shù)的概念之前我們應(yīng)該先了解類的概念,類與對象的概念息息相關(guān)逮矛,我們在講對象的概念的時候說過,一只貓是一個對象转砖,一個人是一個對象,一章桌子也是一個對象鲸伴,那么我們平時說的貓府蔗,人,桌子在沒有特定指出是哪一個對象的時候汞窗,我們其實說的就是類姓赤。我們身邊有人類,貓也是 一個類仲吏,任何有相同屬性和方法的對象我們都可以稱他們?yōu)橐粋€類不铆。

在很多面向?qū)ο笳Z言中都有類的概念,但是在javascript(es5)中沒有類裹唆。而我們可以通過構(gòu)造函數(shù)來模擬一個類誓斥。

function Cat(){
this.name='miaomiao';
this.age=12;
this.sayName=function(){
console.log('我們是貓類');
}
}
var cat=new Cat();
console.log(cat.name);
cat.sayName();
構(gòu)造函數(shù)的函數(shù)名首字母大寫,可以通過在函數(shù)中的this為類設(shè)置屬性和方法许帐,我們在上面的代碼中為貓這個類定義了一個name屬性劳坑,并賦值為"miaomiao",類創(chuàng)建完成后成畦,我們可以通過new關(guān)鍵字創(chuàng)建這個類的實例距芬。例如cat這個變量就是Cat類的一個實例涝开。
我們可以通過傳參的方式,在實例化對象的時候為對象設(shè)置屬性

function Cat(name,age){
this.name=name;
this.age=age;
this.sayName=function(){
console.log('我是'+this.name);
}
}

var cat=new Cat('mioamiao',12);
cat.sayName();
console.log(cat);
一個構(gòu)造函數(shù)可以生成多個對象的實例

function Person(name,age){
this.name=name;
this.age=age;
this.say=function(){
console.log('大家好');
}
}
var lily=Person('lily',12);
var lucy=Person('lucy',13);
console.log(lily);
console.log(lucy);
console.log(lily.say==lucy.say);
一個構(gòu)造函數(shù)Person生成了兩個對象實例lily和lucy框仔,并且有兩個屬性和一個方法舀武。但是,它們的hobby方法是不一樣的离斩。也就是說银舱,每當(dāng)你使用new來調(diào)用構(gòu)造函數(shù)放回一個對象實例的時候,都會創(chuàng)建一個hobby方法捐腿。這既沒有必要纵朋,又浪費資源,hobby方法完全可以被兩個對象實例共享茄袖。

構(gòu)造函數(shù)的缺點就是:同一個構(gòu)造函數(shù)的對象實例之間無法共享屬性或方法操软。

為了解決構(gòu)造函數(shù)的對象實例之間無法共享屬性的缺點,js提供了prototype屬性宪祥。
每一個構(gòu)造函數(shù)都有一個prototype屬性聂薪,這個屬性指向一個原型對象,這個原型對象上的所有屬性和方法都可以被這個構(gòu)造函數(shù)的實例使用

function Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype.hobby=function(){
return 'movie';
}
var girl=new Cat('rose',12);
var boy=new Cat('jack',18);
console.log(girl.hobby==boy.hobby);
如果將hobby方法放在原型對象上蝗羊,那么兩個實例對象都共享著同一個方法藏澳。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市耀找,隨后出現(xiàn)的幾起案子翔悠,更是在濱河造成了極大的恐慌,老刑警劉巖野芒,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓄愁,死亡現(xiàn)場離奇詭異,居然都是意外死亡狞悲,警方通過查閱死者的電腦和手機撮抓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來摇锋,“玉大人丹拯,你說我怎么就攤上這事≥┧。” “怎么了乖酬?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵,是天一觀的道長融求。 經(jīng)常有香客問我剑刑,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任施掏,我火速辦了婚禮钮惠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘七芭。我一直安慰自己素挽,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布狸驳。 她就那樣靜靜地躺著预明,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耙箍。 梳的紋絲不亂的頭發(fā)上撰糠,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機與錄音辩昆,去河邊找鬼阅酪。 笑死,一個胖子當(dāng)著我的面吹牛汁针,可吹牛的內(nèi)容都是我干的术辐。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼施无,長吁一口氣:“原來是場噩夢啊……” “哼辉词!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起猾骡,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤瑞躺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后兴想,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體幢哨,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年襟企,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狮含。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡顽悼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出几迄,到底是詐尸還是另有隱情蔚龙,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布映胁,位于F島的核電站木羹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜坑填,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一抛人、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧脐瑰,春花似錦妖枚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寂恬,卻和暖如春续誉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背初肉。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工酷鸦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人朴译。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓井佑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親眠寿。 傳聞我的和親對象是個殘疾皇子躬翁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

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

  • (一)函數(shù) 1.函數(shù)基本聲明 function fun([參數(shù)1],[參數(shù)2],...){ 函數(shù)體; }; 2....
    妖妖靈嘛0閱讀 287評論 0 0
  • Scala與Java的關(guān)系 Scala與Java的關(guān)系是非常緊密的6⒐啊盒发! 因為Scala是基于Java虛擬機,也就是...
    燈火gg閱讀 3,424評論 1 24
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)狡逢,也就是一...
    悟名先生閱讀 4,131評論 0 13
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產(chǎn)生大量相似的商品宁舰,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式奢浑。簡單...
    舟漁行舟閱讀 7,724評論 2 17
  • 烏云籠罩的清晨蛮艰,間或電閃雷鳴。夏日的陰晨雀彼,有種難以把控的憤怒的感覺壤蚜,同樣讓我感到有些委屈的壓抑。我知道徊哑,這對于我是...
    冰露疏桐閱讀 237評論 0 1