js中Object.hasOwnProperty用法
时间: 2024-04-21 08:22:44 浏览: 178
在 JavaScript 中,`Object.hasOwnProperty()` 方法是用于检查一个对象是否具有指定的属性(不包括原型链上的属性)。它是从 `Object.prototype` 继承而来的方法。
`hasOwnProperty()` 方法接受一个参数,即要检查的属性名。它返回一个布尔值,如果对象具有指定属性,则返回 `true`,否则返回 `false`。
以下是 `Object.hasOwnProperty()` 方法的使用示例:
```javascript
const myObj = {
name: "C知道",
age: 2
};
console.log(myObj.hasOwnProperty("name")); // true
console.log(myObj.hasOwnProperty("gender")); // false
```
在上述示例中,我们通过 `hasOwnProperty()` 方法检查了 `myObj` 对象是否具有名为 "name" 和 "gender" 的属性。由于 "name" 是 `myObj` 对象自身的属性,所以返回 `true`;而 "gender" 不是 `myObj` 对象自身的属性,所以返回 `false`。
注意,`hasOwnProperty()` 方法只会检查对象自身的属性,不会检查原型链上的属性。如果想要检查对象包括原型链上的属性,可以使用 `in` 运算符或者 `Object.prototype.hasOwnProperty.call(obj, prop)` 方法。
```javascript
const myObj = {
name: "C知道",
age: 2
};
console.log("name" in myObj); // true
console.log("toString" in myObj); // true
console.log(Object.prototype.hasOwnProperty.call(myObj, "name")); // true
console.log(Object.prototype.hasOwnProperty.call(myObj, "toString")); // false
```
在上述示例中,我们可以看到使用 `in` 运算符或者 `Object.prototype.hasOwnProperty.call()` 方法可以检查对象包括原型链上的属性。
阅读全文