JS in和Object.hasOwnProperty()的区别
2021/4/26 10:26:06
本文主要是介绍JS in和Object.hasOwnProperty()的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
in
和Object.hasOwnProperty()
都可以用来检测对象中是否具有某个属性,它们最主要的区别在于前者不光检测当前对象,还会检测当前对象原型链中是否具有这个属性,后者只在当前对象自身上检测。
let a = { name: "zhangsan" } let b = { age: 18 } Object.setPropertyOf(a, b) // 把b设置为a的原型 console.log("name" in a) // true console.log("age" in a) // true 因为b中有age属性 console.log(a.hasOwnProperty("name")) // true console.log(a.hasOwnProperty("age")) // false
基于这个特点,通常我们遍历对象的时候会加上判断防止获取原型链上的属性
function Person() { this.name = "zhangsan" this.age = 19 this.hobby = "football" } let p1 = new Person() p1.name = "lisi" // 不加Object.hasOwnProperty() for (const key in p1) { console.log(key); // name, age, hobby } // 加上Object.hasOwnProperty() for (const key in p1) { if (Object.hasOwnProperty(key)) { console.log(key); // name } }
这篇关于JS in和Object.hasOwnProperty()的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Vue CLI多环境配置学习:从入门到实践
- 2024-11-24Vue CLI多环境配置学习:新手入门教程
- 2024-11-24Vue CLI学习:初学者指南
- 2024-11-24Vue CLI学习:从入门到上手的简单教程
- 2024-11-24Vue3+Vite学习:从零开始的前端开发之旅
- 2024-11-24Vue3阿里系UI组件学习入门教程
- 2024-11-24Vue3的阿里系UI组件学习入门指南
- 2024-11-24Vue3公共组件学习:新手入门教程
- 2024-11-24Vue3公共组件学习入门指南
- 2024-11-24vue3核心功能响应式变量学习