js中判断对象是否有某个属性的方式
文章类型:Javascript
发布者:hp
发布时间:2023-04-25
在实际开发中,经常会遇到判断对象某个属性是否存在,今天,整理一下常用方式
一:方式
1:使用in运算符,可以检查对象是否具有给定名称的属性,存在返回true,不存在返回false
'name' in {name: '黄小白个人博客'} //true
> 'name' in {} //false
2:Reflect.has()用于判断对象是否存在某个属性
Reflect.has({name:"黄小白个人博客"}, "name"); // true
Reflect.has({name:"黄小白个人博客"}, "age"); // false
3:hasOwnProperty 用来检测一个对象是否包含特定的自身属性,用来判断一个属性定义在对象本身而不是继承原型链的
o = new Object();
o.name = '黄小白个人博客';
o.hasOwnProperty('name'); // 返回 true
o={name:"黄小白个人博客"}
o.hasOwnProperty('name'); // 返回 true
o.hasOwnProperty('toString'); // 返回 false
4:Object.prototype.hasOwnProperty()
o={hasOwnProperty:"黄小白个人博客"}
Object.prototype.hasOwnProperty.call.hasOwnProperty(o,'name'); // 返回false
5:Object.hasOwn()
Object.hasOwn({name: '黄小白个人博客'}, 'name') // true
Object.hasOwn({}, 'name') //false
二:总结
1:指定的属性在指定的对象或其原型链中,则 in 运算符 返回true