hasOwnProperty:用于判断当前对象实例(不是原型)上是否存在给定的属性,如果有则返回true,会忽略通过原型链继承的属性。
in运算符:用于判断当前对象实例上是否存在给定的属性,如果当前对象自身没有该属性,会判断原型链是否继承该属性,如果有,则返回true。
下面是代码示例:
// 在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 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。