亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

迭代對象屬性

迭代對象屬性

迭代對象屬性var obj = {    name: "Simon",    age: "20",    clothing: {        style: "simple",        hipster: false    }}for(var propt in obj){    console.log(propt + ': ' + obj[propt]);}變量如何propt表示對象的屬性?它不是內置方法或屬性。為什么它會出現在對象中的每個屬性?
查看完整描述

4 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

迭代屬性需要這個額外的hasOwnProperty檢查:

for (var property in object) {
    if (object.hasOwnProperty(property)) {
        // do stuff
    }}

這是必要的,因為對象的原型包含對象的附加屬性,這些屬性在技術上是對象的一部分。這些附加屬性繼承自基礎對象類,但仍然是屬性object

hasOwnProperty 只需檢查這是否是特定于此類的屬性,而不是從基類繼承的屬性。


查看完整回答
反對 回復 2019-05-27
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

從JavaScript 1.8.5開始,您可以使用Object.keys(obj)獲取在對象本身上定義的屬性數組(返回true的屬性obj.hasOwnProperty(key))。

Object.keys(obj).forEach(function(key,index) {
    // key: the name of the object key
    // index: the ordinal position of the key within the object });

這比使用for-in循環更好(也更可讀)。

它支持這些瀏覽器:

  • Firefox(Gecko):4(2.0)

  • Chrome:5

  • Internet Explorer:9

有關更多信息,請參閱Mozilla Developer Network Object.keys()的參考


查看完整回答
反對 回復 2019-05-27
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

這是for...in statementMDN,ECMAScript規范)。

你可以把它讀作“ FOR每個屬性INobj對象,每個屬性分配給PROPT依次變量”。


查看完整回答
反對 回復 2019-05-27
  • 4 回答
  • 0 關注
  • 817 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號