js中面向?qū)ο?創(chuàng)建對象的幾種方式)

1焦履、面向?qū)ο缶幊蹋∣OP)的特點

抽象:抓住核心問題

封裝:只能通過對象來訪問方法

繼承:從已有的對象下繼承出新的對象

多態(tài):多對象的不同形態(tài)

一配乓、創(chuàng)建對象的幾種方式

javascript 創(chuàng)建對象簡單的來說,無非就是使用內(nèi)置對象或各種自定義對象巢株,當(dāng)然還可以使用JSON槐瑞,但寫法有很多,也能混合使用阁苞。

1随珠、工廠方式創(chuàng)建對象:面向?qū)ο笾械姆庋b函數(shù)(內(nèi)置對象)

functioncreatePerson(name){

? ? ? ? //1灭袁、原料

? ? ? ? var obj=new Object();

? ? ? ?//2、加工

? ? ? ?obj.name=name;

? ? ? ?obj.showName=function(){

? ? ? ? ? ? ? ? ?alert(this.name);

? ? ? ?}

? ? ? ? //3窗看、出場茸歧、

? ? ? ?return obj;

?}

var p1=createPerson('小米');

p1.showName()

與系統(tǒng)對象的區(qū)別:

var arr=new Array();//生成一個系統(tǒng)數(shù)組對象

1、系統(tǒng)對象是直接用 new 在外面生成显沈,而工廠定義的是在函數(shù)內(nèi)部生成

2软瞎、工廠定義的函數(shù)名稱第一個是小寫開頭,而系統(tǒng)定義的是大寫開頭

工廠模式的優(yōu)缺點:雖然解決了創(chuàng)建相似對象的問題拉讯,但是卻沒有解決對象識別問題(即怎樣知道一個對象的類型)涤浇。

2、構(gòu)造函數(shù)創(chuàng)建對象

當(dāng)new去調(diào)用一個函數(shù)魔慷,這個時候函數(shù)中的this就是創(chuàng)建出來的對象只锭,而且函數(shù)的返回值就是this(隱式返回)

new后面的函數(shù)叫做構(gòu)造函數(shù)

<1>有參數(shù)的構(gòu)造函數(shù)

function CreatePerson(name){

? ? ? ? ? this.name=name;

? ? ? ? ? this.showName=function(){

? ? ? ? ? ? ? ? ? alert(this.name);

? ? ? ? ? }

}var p1=newCreatePerson('小米');


<2>無參數(shù)的構(gòu)造函數(shù)

function CreatePerson(){}

? ? ? ?var? ? p1=new? CreatePerson();

? ? ? ?p1.name="小米";

? ? ? ?p1.showName=function(){

? ? ? ? ? ? ? ?alert(p1.name);

? ? ? ?}

? ? ? ?p1.showName();

構(gòu)造函數(shù)模式的優(yōu)缺點:

? ? ? ?1、優(yōu)點:創(chuàng)建自定義函數(shù)意味著將來可以將它的實例標(biāo)識為一種特定的類型院尔,這是構(gòu)造函數(shù)? ? ? ? ? ? 勝過工廠模式的地方

? ? ? ?2蜻展、缺點:每個方法都要在每個實例上重新創(chuàng)建一遍

3、對象字面量方式創(chuàng)建對象

person={

? ? name:"小米",

? ? age:23

};

4邀摆、用原型方式

? ? ? ?1纵顾、原型對象:只要創(chuàng)建了一個新函數(shù),就會為該函數(shù)創(chuàng)建一個prototype屬性栋盹,這個屬性指向? ? ? ? ? ? ? ?函數(shù)的原型對象施逾。在默認(rèn)情況下,所有的原型對象都會自動獲得一個constructor(構(gòu)造函? ? ? ? ? ? ? ?數(shù))屬性例获,這個屬性是一個指向prototype屬性所在函數(shù)的指針

? ? ? ?2汉额、可以通過isPrototypeOf()方法來確定對象之間是否存在這種關(guān)系

function Person(){}

? ? ? Person.prototype.name="小米";

? ? ? Person.prototype.showName=function(){

? ? ? ? ? ? ? alert(this.name);

? ? ? }

? ? ? var p1=newPerson();

? ? ? p1.showName();

原型模式的優(yōu)缺點:

? ? ? ? 1、優(yōu)點:可以讓所有的對象實例共享它所包含的屬性和方法

? ? ? ? 2榨汤、缺點:原型中是所有屬性都是共享的蠕搜,但是實例一般都是要有自己的單獨屬性的。所以一? ? ? ? ? ? ? ? ? 般很少單獨使用原型模式件余。

5.混合模型

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

function? CreatePerson(name){

? ? ? ?this.name=name;

}

Create.prototype.showName=function(){

? ? ? ? alert(this.name);

}

var? p1=new? CreatePerson('小米');? ??

p1.showName();

var p2=new CreatePerson('小米');

p2.showName();

alert(p1.showName==p2.showName);

//true;原因:都是在原型下面,在內(nèi)存中只存在一份啼器,地址相同

總結(jié):

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

this.屬性;

}

構(gòu)造函數(shù).原型.方法=function(){};

var 對象1=new 構(gòu)造函數(shù)();

對象1.方法();

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末旬渠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子端壳,更是在濱河造成了極大的恐慌告丢,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件损谦,死亡現(xiàn)場離奇詭異岖免,居然都是意外死亡岳颇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門颅湘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來话侧,“玉大人,你說我怎么就攤上這事闯参≌芭簦” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵鹿寨,是天一觀的道長新博。 經(jīng)常有香客問我,道長脚草,這世上最難降的妖魔是什么赫悄? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮馏慨,結(jié)果婚禮上埂淮,老公的妹妹穿的比我還像新娘。我一直安慰自己熏纯,他們只是感情好同诫,可當(dāng)我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布粤策。 她就那樣靜靜地躺著樟澜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪叮盘。 梳的紋絲不亂的頭發(fā)上秩贰,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天,我揣著相機與錄音柔吼,去河邊找鬼毒费。 笑死,一個胖子當(dāng)著我的面吹牛愈魏,可吹牛的內(nèi)容都是我干的觅玻。 我是一名探鬼主播,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼培漏,長吁一口氣:“原來是場噩夢啊……” “哼溪厘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起牌柄,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤畸悬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后珊佣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹋宦,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡披粟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了冷冗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片守屉。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蒿辙,靈堂內(nèi)的尸體忽然破棺而出胸梆,到底是詐尸還是另有隱情,我是刑警寧澤须板,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布碰镜,位于F島的核電站,受9級特大地震影響习瑰,放射性物質(zhì)發(fā)生泄漏绪颖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一甜奄、第九天 我趴在偏房一處隱蔽的房頂上張望柠横。 院中可真熱鬧,春花似錦课兄、人聲如沸牍氛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搬俊。三九已至,卻和暖如春蜒茄,著一層夾襖步出監(jiān)牢的瞬間唉擂,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工檀葛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留玩祟,地道東北人。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓屿聋,卻偏偏與公主長得像空扎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子润讥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,930評論 2 361

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