Object.hasOwn() 判断是否有自身属性
最后更新:2026-09-09
Object.hasOwn() 判断是否有自身属性
Object.hasOwn 判断对象是否具有指定**自身**属性(不含原型链上的),是 hasOwnProperty 的更安全替代。
| 分类 | 对象 |
|---|---|
| ES 版本 | ES2022 |
📝 语法
Object.hasOwn(对象, 属性名);
⚙️ 参数
| obj | 要检查的对象。 |
|---|---|
| propertyName | 属性名(字符串)。 |
返回值:布尔值。
是否修改原值:否(返回新值)
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
true
false
false
💡 提示 Object.hasOwn 比 obj.hasOwnProperty() 更安全——后者在对象没有原型时可能报错。
ℹ️ info ES2022 新增——替代 obj.hasOwnProperty() 的标准方式。
🌐 浏览器支持
| 浏览器 | |||||
|---|---|---|---|---|---|
| Object.hasOwn() | ✓ v64 | ✓ v79 | ✓ v78 | ✓ v12 | ✓ v51 |
| 所有现代浏览器均支持 | |||||
🏷️ 相关对象
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QObject.hasOwn 和 hasOwnProperty 的区别?
AhasOwnProperty 是实例方法,对象可能没有原型(Object.create(null))导致报错。Object.hasOwn 是静态方法,永远安全。
QObject.hasOwn 检查原型链上的属性吗?
A不检查——只检查自身属性。继承的属性返回 false。
QObject.hasOwn 是 ES 几新增的?
AES2022。