JavaScript中Object-hasOwn作为现代安全检测方案

张开发
2026/4/19 0:38:26 15 分钟阅读

分享文章

JavaScript中Object-hasOwn作为现代安全检测方案
Object.hasOwn 是 ES2022 引入的安全准确判断对象自有属性的方法替代易出错的 hasOwnProperty 和不严谨的 in 操作符始终调用原始实现、支持 Symbol、仅查自身属性且对非对象参数抛 TypeError。Object.hasOwn 是 ES2022 引入的原生方法用于**安全、准确地判断对象自身是否拥有指定属性**替代过去容易出错的 obj.hasOwnProperty(prop) 和不严谨的 prop in obj。为什么需要 Object.hasOwn传统方式存在明显缺陷obj.hasOwnProperty 会被原型链上同名方法覆盖比如某个对象自己定义了 hasOwnProperty: null 或 hasOwnProperty() { return false; }导致检测失效 prop in obj 会查找整个原型链无法区分“自有属性”和“继承属性” obj[prop] ! undefined 无法处理值为 undefined 的合法属性且会触发 getter 手动绑定 Object.prototype.hasOwnProperty.call(obj, prop) 冗长且易忘。Object.hasOwn 的正确用法语法简洁语义明确Object.hasOwn(obj, key) // true / false它始终从 Object.prototype 调用原始实现不受目标对象干扰 Zeemo AI 一款专业的视频字幕制作和视频处理工具

更多文章