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()只会遍历自有属性
相关文章
相关标签/搜索