javascript動(dòng)態(tài)添加、修改、刪除對(duì)象的屬性與方法詳解
現(xiàn)在介紹如何為一個(gè)對(duì)象添加、修改或者刪除屬性和方法。在其他語(yǔ)言中,對(duì)象一旦生成,就不可更改了,要為一個(gè)對(duì)象添加修改成員必須要在對(duì)應(yīng)的類(lèi)中修改,并重新實(shí)例化,而且程序必須經(jīng)過(guò)重新編譯。JavaScript 中卻非如此,它提供了靈活的機(jī)制來(lái)修改對(duì)象的行為,可以動(dòng)態(tài)添加、修改、刪除屬性和方法。例如首先使用類(lèi)Object來(lái)創(chuàng)建一個(gè)空對(duì)象user:
var user=new Object();
1.添加屬性
這時(shí)user 對(duì)象沒(méi)有任何屬性和方法,顯然沒(méi)有任何用途。但可以為它動(dòng)態(tài)的添加屬性和方法,例如:
user.name=”jack”;
user.age=21;
user.sex=”male”;
通過(guò)上述語(yǔ)句,user 對(duì)象便具有了三個(gè)屬性:name、age和sex。下面輸出這三個(gè)語(yǔ)句:
alert(user.name);
alert(user.age);
alert(user.sex);
由代碼運(yùn)行效果可知,三個(gè)屬性已經(jīng)完全屬于user 對(duì)象了。
2.添加方法
添加方法的過(guò)程和屬性類(lèi)似:
user.alert=function(){
alert(“my name is:”+this.name);
}
這就為user 對(duì)象添加了一個(gè)方法“alert”,通過(guò)執(zhí)行它,可以彈出一個(gè)對(duì)話(huà)框顯示自己的名字介紹:
user.alert();
3.修改屬性
修改一個(gè)屬性的過(guò)程就是用新的屬性替換舊的屬性,例如:
user.name=”tom”;
user.alert=function(){
alert(“hello,”+this.name);
}
這樣就修改了user 對(duì)象name屬性的值和alert方法,它從顯示“my name is”變?yōu)榱孙@示“hello”。
4.刪除屬性
刪除一個(gè)屬性的過(guò)程也很簡(jiǎn)單,就是將其置為undefined:
user.name=undefined;
user.alert=undefined;
這樣就刪除了name屬性和alert方法。在之后的代碼中,這些屬性變的不可用。
在添加、修改或者刪除屬性時(shí),和引用屬性相同,也可以采用方括號(hào)([])語(yǔ)法:
user[“name”]=”tom”;
使用這種方式還有一個(gè)額外的特點(diǎn),就是可以使用非標(biāo)識(shí)符字符串作為屬性名稱(chēng),例如
標(biāo)識(shí)符中不允許以數(shù)字開(kāi)頭或者出現(xiàn)空格,但在方括號(hào)([])語(yǔ)法中卻可以使用:
user[“my name”]=”tom”;
需要注意,在使用這種非標(biāo)識(shí)符作為名稱(chēng)的屬性時(shí),仍然要用方括號(hào)語(yǔ)法來(lái)引用:
alert(user[“my name”]);
而不能寫(xiě)為:
alert(user.my name);
利用對(duì)象的這種性質(zhì),甚至可以很容易實(shí)現(xiàn)一個(gè)簡(jiǎn)單的哈希表,在本書(shū)的后面將會(huì)看到其應(yīng)用。此可見(jiàn),JavaScript中的每個(gè)對(duì)象都是動(dòng)態(tài)可變的,這給編程帶來(lái)了很大的靈活性,也和其他語(yǔ)言產(chǎn)生了很大的區(qū)別,讀者可以體會(huì)這種性質(zhì)。
相關(guān)文章
TypeScript類(lèi)型聲明書(shū)寫(xiě)詳解
這篇文章主要介紹了TypeScript類(lèi)型聲明書(shū)寫(xiě)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
js判斷手機(jī)號(hào)是否正確并返回的實(shí)現(xiàn)代碼
這篇文章主要介紹了js判斷手機(jī)號(hào)是否正確并返回的實(shí)現(xiàn)代碼,以及使用正則表達(dá)式判斷手機(jī)號(hào)是否正確,需要的的朋友參考下2017-01-01
微信小程序?qū)崿F(xiàn)的涂鴉功能示例【附源碼下載】
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)的涂鴉功能,涉及微信小程序事件響應(yīng)及畫(huà)筆的相關(guān)操作技巧,并附帶源碼供讀者下載參考,需要的朋友可以參考下2018-01-01
微信小程序與webview?H5交互的方法(內(nèi)嵌H5跳轉(zhuǎn)原生頁(yè)面)
小程序webView中嵌套H5頁(yè)面,難免會(huì)遇到小程序與h5頁(yè)面進(jìn)行數(shù)據(jù)通信或交互的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于微信小程序與webview?H5交互的相關(guān)資料,內(nèi)嵌H5跳轉(zhuǎn)原生頁(yè)面,需要的朋友可以參考下2022-11-11
詳解JS中的compose函數(shù)和pipe函數(shù)用法
這篇文章主要介紹了JS中的compose函數(shù)和pipe函數(shù)用法,想深入了解Javascript的同學(xué),可以參考下2021-04-04
5個(gè)最佳的Javascript日期處理類(lèi)庫(kù)分享
在大家日常網(wǎng)站開(kāi)發(fā)和web應(yīng)用開(kāi)發(fā)中,我們往往需要有效的調(diào)用Javascript處理日期和時(shí)間格式相關(guān)的函數(shù),在Javascript中已經(jīng)包含了部分最基本的內(nèi)建處理方法2012-04-04
JavaScript實(shí)現(xiàn)點(diǎn)擊切換驗(yàn)證碼及校驗(yàn)
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)點(diǎn)擊切換驗(yàn)證碼及校驗(yàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-01-01
JavaScript forEach()遍歷函數(shù)使用及介紹
這篇文章主要介紹了JavaScript forEach()遍歷函數(shù)使用及介紹,本文講解了使用forEach遍歷數(shù)組的用法以及提前終止循環(huán)的一個(gè)方法技巧,需要的朋友可以參考下2015-07-07

