首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >js对象hasOwnProperty和in的区别

js对象hasOwnProperty和in的区别

原创
作者头像
IT工作者
发布于 2022-05-12 09:07:05
发布于 2022-05-12 09:07:05
1.7K0
举报
文章被收录于专栏:程序技术知识程序技术知识

hasOwnProperty:用于判断当前对象实例(不是原型)上是否存在给定的属性,如果有则返回true,会忽略通过原型链继承的属性。

in运算符:用于判断当前对象实例上是否存在给定的属性,如果当前对象自身没有该属性,会判断原型链是否继承该属性,如果有,则返回true。

下面是代码示例:

代码语言:javascript
复制
// 在Object原型上定义一个num属性,此时所有的对象实例都会通过原型链继承该属性。
Object.prototype.num = 1;

const obj = {
    a: 0
};

console.log(obj.hasOwnProperty("a")); //true, a是obj自身属性
console.log(obj.hasOwnProperty("num"));// false, num不是obj自身属性

console.log("a" in obj); // true   a是自身属性
console.log("num" in obj);// true  通过原型链查找,可以找到该属性

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档