最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中對象property的讀取和寫入方法介紹

 更新時間:2014年12月30日 09:44:22   投稿:junjie  
這篇文章主要介紹了JavaScript中對象property的讀取和寫入方法介紹,本文講解了原型繼承鏈中property的讀取、原型繼承鏈中property的寫入等內容,需要的朋友可以參考下

JavaScript中,可以通過點號操作符”.”或者中括號操作符”[]“來對對象的property進行讀取和寫入:


復制代碼 代碼如下:

var o = {x:1, y:2};
console.log(o.x);//1
console.log(o["y"]);//2
o.y = 7;
console.log(o["y"]);//7


值得注意的是,如果使用中括號操作符,則操作符內的值類型必須是string,或者能夠轉換成string的表達式:


復制代碼 代碼如下:

console.log(o[y]);//ReferenceError: y is not defined
var v = "y";
console.log(o[v]);//7


與Java語言不同的是,JavaScript中對象的property可以動態(tài)添加或刪除。當對某個property進行賦值操作時,如果該property不存在,JavaScript會在對象中動態(tài)添加此property:


復制代碼 代碼如下:

o.z = 99;
console.log(o);//Object {x=1, y=7, z=99}

 

原型繼承鏈中property的讀取

 

JavaScript中所有的對象均有一個prototype原型對象,并從該原型對象中繼承property;因此,JS中一個對象的property分成兩大類:

1.對象自身所擁有的property(“Own Property”)。
2.從原型對象處繼承而來的property。

當讀取對象的property時,所遵循的規(guī)則如下:

1.從對象自身的property集合(“Own Property”)中搜索需要讀取的property;如果可以搜索到,則直接讀取該property并返回其值。
2.如果無法從對象自身的property集合(“Own Property”)中搜索到該property,那么則從對象的prototype原型鏈中繼續(xù)進行搜索,直至搜索到該property并返回其值。
3.如果無法從對象自身的property集合(“Own Property”)中搜索到該property,也無法從對象的所有prototype對象中搜索到該property,則返回undefined。

原型繼承鏈中property的寫入

在對JavaScript對象的property進行寫入時,所遵循的規(guī)則如下:

1.如果對象自身有該property,且該property可寫,則將新值寫入該property。如果該property只讀,則報錯。
2.如果對象自身沒有該property,且其所有的prototype對象中也不存在該property,則將此property添加到該對象中。
3.如果對象自身沒有該property,但其prototype對象中存在該property且可寫,那么JS會在對象中新建這個property;也就是說,該對象覆寫了其prototype對象中的這個property。prototype對象中此property值不變。
4.如果對象自身沒有該property,但其prototype對象中存在該property且只讀,則報錯。
5.如果對象自身沒有該property,但其prototype對象中存在該property的setter方法,那么JS會調用該prototype對象中的setter方法。值得注意的是,在運行setter方法時,如果涉及到變量賦值,那么賦值操作將作用在對象自身上,而prototype對象不會有任何改動。對于這一行為,可以理解為:對象從prototype處繼承了setter函數并加以執(zhí)行。

從上述規(guī)則中可以發(fā)現,如果對property的賦值操作成功,那么最后被修改的永遠是對象自身,其prototype原型對象不會有任何改動。

相關文章

  • js實現的簡練高效拖拽功能示例

    js實現的簡練高效拖拽功能示例

    這篇文章主要介紹了js實現的簡練高效拖拽功能,通過對js鼠標事件的擴展實現拖拽效果,非常簡單實用,需要的朋友可以參考下
    2016-12-12
  • JS簡單計算器實例

    JS簡單計算器實例

    這篇文章主要介紹了JS簡單計算器的實現方法,以加法實例分析了js實現計算功能的技巧,需要的朋友可以參考下
    2015-01-01
  • 純JS實現旋轉圖片3D展示效果

    純JS實現旋轉圖片3D展示效果

    本文給大家分享的是純js實現的類似flash里的圖片環(huán)繞旋轉效果,非常炫酷,有需要的小伙伴可以參考下。
    2015-04-04
  • JS實現數組去重及數組內對象去重功能示例

    JS實現數組去重及數組內對象去重功能示例

    這篇文章主要介紹了JS實現數組去重及數組內對象去重功能,結合實例形式分析了ES5與ES6兩種版本針對數組去重的相關操作技巧,需要的朋友可以參考下
    2019-02-02
  • 淺談DOM的操作以及性能優(yōu)化問題-重繪重排

    淺談DOM的操作以及性能優(yōu)化問題-重繪重排

    下面小編就為大家?guī)硪黄獪\談DOM的操作以及性能優(yōu)化問題-重繪重排。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • js實現快速分享功能(你的文章分享工具)

    js實現快速分享功能(你的文章分享工具)

    這是一款簡單易用的文章分享工具,您只需將下面的html代碼拷貝到模板中就可以實現文章快速分享功能,具體的實現如下,感興趣的朋友可以參考下哈,希望對大家有所幫助
    2013-06-06
  • javascript里模擬sleep(兩種實現方式)

    javascript里模擬sleep(兩種實現方式)

    有幾種方式,但都不完美 其一:不斷循環(huán),直到達到指定時間、其二:用xhr同步請求后臺程序,比如傳2000過去,后臺就sleep 2秒后再返回,這種方式也有缺點,當N多客戶端都請求后臺時,一直保持連接http開銷很大,感興趣的朋友可以了解下啊
    2013-01-01
  • javascript巧用eval函數組裝表單輸入項為json對象的方法

    javascript巧用eval函數組裝表單輸入項為json對象的方法

    這篇文章主要介紹了javascript巧用eval函數組裝表單輸入項為json對象的方法,實例分析了JavaScript使用eval函數動態(tài)構造json對象的相關技巧,需要的朋友可以參考下
    2015-11-11
  • 獲取select元素被選中的文本內容的js代碼

    獲取select元素被選中的文本內容的js代碼

    獲取select元素被選中的文本內容的方法有很多,本文為大家介紹下使用javascript來輕松實現下
    2014-01-01
  • JS實現的簡易拖放效果示例

    JS實現的簡易拖放效果示例

    這篇文章主要介紹了JS實現的簡易拖放效果的方法,涉及JS事件監(jiān)聽、擴展及頁面元素動態(tài)操作的相關技巧,需要的朋友可以參考下
    2016-12-12

最新評論

盱眙县| 贺兰县| 阿城市| 巍山| 防城港市| 西畴县| 英吉沙县| 朝阳区| 金溪县| 报价| 福泉市| 沙坪坝区| 朝阳市| 浦城县| 天气| 体育| 阿城市| 隆化县| 葫芦岛市| 启东市| 汤阴县| 东至县| 鄂托克前旗| 同德县| 汕头市| 丹寨县| 桐庐县| 南安市| 柳江县| 武定县| 武夷山市| 区。| 陆丰市| 仪征市| 碌曲县| 双牌县| 绿春县| 都昌县| 思南县| 陆丰市| 吴旗县|