您的位置:首页 > Web前端 > JavaScript

怎样判断JS对象中的属性

2017-02-07 19:05 267 查看
// 如何在不访问属性值的情况下判断对象中是否存在这个属性
var obj = {
a: 2
};

Object.defineProperty(
obj,
'b',
// 让 b 不可枚举
{
enumerable: false,
value: 3
}
);
// in 操作符会检查属性是否在对象及其 [[Prototype]] 原型链中,而 hasOwnProperty()只会检查属性是否在对象中
console.log('a' in obj);
console.log('b' in obj);

console.log(obj.hasOwnProperty('a'));
console.log(obj.hasOwnProperty('b'));

// propertyIsEnumerable(..) 检查属性名是否直接存在于对象中,并且是可枚举的
console.log(obj.propertyIsEnumerable( 'a' ));
console.log(obj.propertyIsEnumerable( 'b' ));

// Object.keys(..)会返回一个包含可枚举的属性的数组
console.log(Object.keys( obj ));
// Object.getOwnPropertyNames(..)返回一个包含所有属性的数组,不管能不能枚举
console.log(Object.getOwnPropertyNames( obj ));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: