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)建
- 通過(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)