js面向對象精要-理解對象

檢查對象中是否存在某個屬性

  • 通常經過點的方式判斷
if(person.age){
        //操做
    }
複製代碼
  • 這樣判斷方式是不正確的,由於在js中,當if判斷中的值是一個對象,非空字符串,非空數字或true時,結果爲真。當是一個null,undefied,0,false,NaN,空字符串結果爲假。因爲對象屬性能夠包含這些爲假的值,可能會致使錯誤。好比person.age=0,雖然age屬性確實存在,可是if條件確爲假。
  • 應該這樣判斷對象中是否存在某個屬性:in操做符
if(age in person){
        //操做
    }
複製代碼

對象的屬性枚舉

  • for-in
var obj = {
        name:'aa',
        age:2
    }

    for(item in obj){
        console.log(item)// 返回健
        console.log(obj[item])//返回值
    }
複製代碼
  • 獲取對象中全部的健
    • Object.keys() 返回數組
  • for-in 和Object.keys()的區別
    • for-in會遍歷自有屬性和原型屬性
    • Object.keys()只會遍歷自有屬性
相關文章
相關標籤/搜索