JS存在性
2017-04-20 12:27 心猿意‘码’ 阅读(167) 评论(0) 编辑 收藏 举报var myObject = { a:2 }; ("a" in myObject);//true ("b" in myObject);//false myObject.hasOwnProperty("a");//true myObject.hasOwnProperty("b");//false
in 操作符会检查属性是否在对象及其[[prototype]]原型链中,hasOwnProperty(...)只会检查属性是否在对象中
当对象没有连接到 Object.prototype ,可以用 Object.prototype.hasOwnProperty.call(myObject,"a")
注意:in 操作符检查的是某个属性名是否存在,对于数组 [2,4,6]来说,包含的属性名是 0,1,2
另外:
propertyIsEnumerable(...)会检查给定的属性是否存在于对象中(而不是原型链上),并且满足可枚举性为true
Object.keys(...)会返回一个数组,包含所有可枚举属性
Object.getOwnPropertyNames(...)会返回一个数组,无论是否可枚举,包含所有属性