JavaScript獲取對象的屬性

1.從 ECMAScript 5 開始,有三種原生的方法用于列出或枚舉對象的屬性:

for...in:該方法依次訪問一個對象及其原型鏈中所有可枚舉的屬性

let obj = {a:1,b:2,c:3};for(let iinobj) {? console.log("obj."+ i +" = "+ obj[i]);}// "obj.a = 1"http:// "obj.b = 2"http:// "obj.c = 3"

Object.keys(O):該方法返回一個數組,它包含了對象O自身的所有可枚舉屬性的名稱

letobj = {0:"a",1:"b",2:"c"};console.log(Object.keys(obj));? ? //["0","1","2"]

Object.getOwnPropertyNames(O):該方法返回一個數組,它包含了對象O所有擁有的屬性(包括不可枚舉)的名稱

varobj =Object.create({}, {getFoo: {value:function(){returnthis.foo; },enumerable:false}});obj.foo =1;obj.prototype = {a:1,b:2,c:3};console.log(Object.getOwnPropertyNames(obj).sort());//["foo", "getFoo", "prototype"]

console.log(Object.getOwnPropertyNames('asdfgc'));//["0","1","2","3","4","5","length"]

2.區(qū)別

如果你只要獲取到可枚舉屬性,查看Object.keys或用for...in循環(huán)(還會獲取到原型鏈上的可枚舉屬性,不過可以使用hasOwnProperty()方法過濾掉)

functionobject(){this.color ="red";}object.prototype = {a:1,b:2,c:3};varobj =newobject();for(varpropinobj) {console.log(prop);// "color" "a" "b" "c"}for(varpropinobj) {if( obj.hasOwnProperty(prop)){console.log(prop);// "color"} }console.log(Object.keys(obj));//["color"]

前端學習群:543761540? 點擊鏈接加入群【前端交流總群③】:https://jq.qq.com/?_wv=1027&k=47bGc0u

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1.從 ECMAScript 5 開始,有三種原生的方法用于列出或枚舉對象的屬性: for...in: 該方法依次...
    07120665a058閱讀 7,305評論 0 3
  • 此文章用于歸納Object的所有方法 在JavaScript中,object是所有對象的基礎(原型鏈的頂端),所以...
    moonburn閱讀 719評論 0 5
  • 本篇主要介紹JS中常用Object的屬性方法。 delete 操作 in 運算符 obj.hasOwnProper...
    boySpray閱讀 2,176評論 0 2
  • 1.屬性的簡潔表示法 允許直接寫入變量和函數 上面代碼表明,ES6 允許在對象之中,直接寫變量。這時,屬性名為變量...
    雨飛飛雨閱讀 1,254評論 0 3
  • 這周成長記錄的最大收獲,就是給了我足夠多的信心,我正在路上,走在我前面的人告訴我前面有一大片梅子林,而且,我堅信那...
    封筆ing閱讀 205評論 0 0

友情鏈接更多精彩內容