JavaScript對(duì)象的多種創(chuàng)建方式

2017年2月21日20:37:56 CHJ_1993

對(duì)象在很多開(kāi)發(fā)語(yǔ)言中其為重要,在之前我們學(xué)過(guò)如何創(chuàng)建字符串、數(shù)組儿子、一個(gè)數(shù)字麦箍,等多種類(lèi)型的數(shù)據(jù)漓藕,但是前面我們所創(chuàng)建的僅僅可以簡(jiǎn)單的認(rèn)為是一下簡(jiǎn)單的數(shù)據(jù)類(lèi)型。然而在JavaScript中數(shù)據(jù)類(lèi)型常常被分為兩種數(shù)據(jù)類(lèi)型挟裂,簡(jiǎn)單數(shù)據(jù)類(lèi)型和復(fù)雜類(lèi)型享钞。

在復(fù)雜數(shù)據(jù)類(lèi)型中,對(duì)象(Object)占著一個(gè)其為重要的角色诀蓉,那么如何創(chuàng)建一個(gè)對(duì)象呢 栗竖?下面我來(lái)介紹集中方法暑脆。

1.對(duì)象字面量直接創(chuàng)建

我們學(xué)過(guò) 字符串的創(chuàng)建方法: var a = ""; 數(shù)組的創(chuàng)建方法: var arr = []; 這種就是字面量直接創(chuàng)建的方法

那么字符串,數(shù)組都可以用這么簡(jiǎn)單的方法創(chuàng)建狐肢,那么對(duì)象能不能這樣創(chuàng)建呢添吗? 一樣是可以的

格式: var obj = {};

下面我們先來(lái)看一段代碼:

var obj = {}; //創(chuàng)建一個(gè)空的對(duì)象
//創(chuàng)建一個(gè)名為 dog 的對(duì)象,自定義的屬性有 name 和 color
var dog = {
  name:"貓",
  color:"yellow"
}
alert(dog.name) //這樣就可以輸出dog的名字

看看上面簡(jiǎn)單吧,那么我們?cè)谥皩W(xué)字符串的時(shí)候可以通過(guò) new 關(guān)鍵字來(lái)創(chuàng)建份名,那么對(duì)象也可以通過(guò)這種方式創(chuàng)建

  1. 通過(guò)new 關(guān)鍵字創(chuàng)建

語(yǔ)法: var obj = new Object()

同樣我們也可以通過(guò)這種方式來(lái)創(chuàng)建一個(gè)空的對(duì)象碟联,然后想里面添加屬性,下面來(lái)看代碼

var person = new Object(); //創(chuàng)建一個(gè)名為 person 的一個(gè)空對(duì)象

//給person對(duì)象添加一些屬性
person.name = '李二妹';
person.age = "20";
person.hair = "black";

通過(guò)這種方式創(chuàng)建僵腺,也是很方便玄帕,但是有時(shí)候沒(méi)辦法滿(mǎn)足我們項(xiàng)目的需求,比如我們需要多個(gè)有一些相同基礎(chǔ)屬性的對(duì)象想邦,那么我們一樣的代碼就要復(fù)制很多次裤纹,那么我們也可以通過(guò)函數(shù)(也可以叫工廠模式創(chuàng)建)的方式來(lái)創(chuàng)建

3.通過(guò)封裝函數(shù)的方式創(chuàng)建對(duì)象

語(yǔ)法: function functionName(){創(chuàng)建對(duì)象的代碼}

下面我們來(lái)看看通過(guò)封裝函數(shù)的方式創(chuàng)建對(duì)象是如何完成的

//創(chuàng)建一個(gè)person對(duì)象,那么我們都知道人丧没,都有姓名鹰椒,性別,年齡等一些想同屬性呕童,如果我們創(chuàng)建多個(gè)人那么
//這種方式就很方便了
function createPerson(name,age,sex){
    var obj = new Object(); //通過(guò)new Object()方式創(chuàng)建一個(gè)對(duì)象
    obj.name = name;      //給該對(duì)象添加一些基礎(chǔ)屬性
    obj.age = name;
    obj.sex = sex;
    return obj;  //返回一個(gè)對(duì)象
}

var p1 = createPerson("張三");  //這樣 就創(chuàng)建了一個(gè)p1對(duì)象

通過(guò)上面的方式漆际,現(xiàn)在們可以知道用三種方式來(lái)創(chuàng)建對(duì)象了,那么你們有沒(méi)有發(fā)現(xiàn)夺饲,現(xiàn)在這些對(duì)象如果的類(lèi)型都是Object,那么如果我們又想定義一個(gè)對(duì)象奸汇,但是又不想是Object類(lèi)型的呢?那么就來(lái)看接下來(lái)要介紹的一種方法往声。

4.自定義構(gòu)造函數(shù)方式創(chuàng)建

什么是自定義構(gòu)造函數(shù)方式創(chuàng)建呢擂找?其實(shí)在JavaScript這種弱類(lèi)型語(yǔ)言中,構(gòu)造函數(shù)跟我們常常用的普通函數(shù)一樣浩销,都是通過(guò)function 關(guān)鍵字的贯涎,但是兩者之間的區(qū)別是是什么:

構(gòu)造函數(shù): var con = new Constructor();

通過(guò) new 關(guān)鍵字來(lái)使用

普通函數(shù): functionName()

直接調(diào)用就是普通函數(shù)

說(shuō)了這么多,大家還是懵懂慢洋,下面我們用代碼來(lái)演示

//定義一個(gè)函數(shù),此時(shí)只是一個(gè)普通的函數(shù)
function  Person(name,age,sex){
  this.name = name;
  this.age = age;
  this.sex = sex;
}

//通過(guò)new 關(guān)鍵詞來(lái)調(diào)用
var p1 = new Person("張三",20,"男");  
//此時(shí) p1 就是一個(gè)對(duì)象塘雳,同樣Person 就是一個(gè)構(gòu)造函數(shù),
//注意 : 此時(shí)p1的類(lèi)型不是Object  而是Person

上面的就是利用創(chuàng)建函數(shù)創(chuàng)建一個(gè)對(duì)象普筹,那么常用的四種函數(shù)的創(chuàng)建方式就是這樣了

您的瀏覽败明,是我?jiàn)^斗分目標(biāo)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市太防,隨后出現(xiàn)的幾起案子妻顶,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盈包,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡醇王,警方通過(guò)查閱死者的電腦和手機(jī)呢燥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寓娩,“玉大人叛氨,你說(shuō)我怎么就攤上這事〖椋” “怎么了寞埠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)焊夸。 經(jīng)常有香客問(wèn)我仁连,道長(zhǎng),這世上最難降的妖魔是什么阱穗? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任饭冬,我火速辦了婚禮,結(jié)果婚禮上揪阶,老公的妹妹穿的比我還像新娘昌抠。我一直安慰自己,他們只是感情好鲁僚,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布炊苫。 她就那樣靜靜地躺著,像睡著了一般冰沙。 火紅的嫁衣襯著肌膚如雪侨艾。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天拓挥,我揣著相機(jī)與錄音蒋畜,去河邊找鬼。 笑死撞叽,一個(gè)胖子當(dāng)著我的面吹牛姻成,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播愿棋,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼科展,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了糠雨?” 一聲冷哼從身側(cè)響起才睹,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后琅攘,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體垮庐,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年坞琴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哨查。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剧辐,死狀恐怖寒亥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情荧关,我是刑警寧澤溉奕,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站忍啤,受9級(jí)特大地震影響加勤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜同波,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一胸竞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧参萄,春花似錦卫枝、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至筒溃,卻和暖如春马篮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背怜奖。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工浑测, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歪玲。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓迁央,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親滥崩。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岖圈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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

  • 函數(shù)和對(duì)象 1、函數(shù) 1.1 函數(shù)概述 函數(shù)對(duì)于任何一門(mén)語(yǔ)言來(lái)說(shuō)都是核心的概念钙皮。通過(guò)函數(shù)可以封裝任意多條語(yǔ)句蜂科,而且...
    道無(wú)虛閱讀 4,527評(píng)論 0 5
  • 第5章 引用類(lèi)型(返回首頁(yè)) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類(lèi)型 使用基本類(lèi)型...
    大學(xué)一百閱讀 3,212評(píng)論 0 4
  • 《大明驚鴻》目錄上一章節(jié):No.10 身陷疑境下一章節(jié):No.12 來(lái)者不善 天啟年間正值歷史上的小冰河期顽决,怪不得...
    筱楚白閱讀 407評(píng)論 9 9
  • #你好 ##耳機(jī)標(biāo)題
    OliverYang閱讀 193評(píng)論 0 0
  • 1.5:50醒來(lái)來(lái),看《提高工作效率的12個(gè)技巧》到6:17. 2.6:17-6:37起來(lái)洗簌导匣,洗襪子才菠。 3.6:...
    雪木912閱讀 158評(píng)論 0 0