1. 使用 in 运算符:
- 如果对象
obj或其原型链中包含名为 “key” 的属性,则返回true。 - 如果对象
obj不包含名为 “key” 的属性,并且它的原型链上也不存在该属性,则返回false。
let obj = { name: "Jerry", age: 18, };
console.log(“name” in obj); // true
console.log(“toString” in obj); // true
由于
toString方法存在于Object的原型中,因此使用in运算符检查"toString" in obj会返回true,但obj.hasOwnProperty("toString")返回false,因为该属性不是直接属于obj对象的。
2. 使用 hasOwnProperty() 方法:
- 如果对象
obj直接拥有名为 “key” 的属性,则返回true。 - 如果对象
obj不直接拥有名为 “key” 的属性,或者它的原型链上存在该属性,则返回false。
let obj = { name: "Jerry", age: 18, };
console.log(obj.hasOwnProperty(“name”)); // true
console.log(obj.hasOwnProperty(“toString”)); // false
3. 使用 Object.keys() 方法:
Object.keys()方法会返回对象自身可枚举的属性组成的数组,然后使用includes()方法来检查指定的键是否存在于该数组中。
let obj = {
name: "Jerry",
age: 18,
};
console.log(Object.keys(obj).includes("name")); // true
console.log(Object.keys(obj).includes("toString")); // false
如果帮助到您了,可以留下一个赞👍告诉我