hasOwnProperty() 方法

hasOwnProperty() 方法返回一个布尔值,该值指示对象是否具有作为其自身属性的指定属性。

如果对象包含“key”属性,则创建一个函数。
如果在循环中找不到任何键,这将返回 true,这意味着该对象为空。
如果找到任何键,则循环中断并返回 false。

Object.keys() 方法

Object.keys() 方法返回指定对象自己的可枚举属性名称的数组。

属性顺序与手动循环对象属性的情况相同。

如何列出 JavaScript 对象的属性

在本教程中,介绍了两个最常用的方法,它们将列出 JavaScript 对象的属性。

我们可以使用现代浏览器支持的内置 Object.keys 方法:

let keys = Object.keys(myObj);

例子:

let object = {
  name: 'Jack',
  age: 25
};
let keys = Object.keys(object)
console.log(keys);

要检索属性名称列表,我们可以执行以下操作:

let getKeys = function (obj) {
  let keysArr = [];
  for (var key in obj) {
    keysArr.push(key);
  }
  return keysArr;
}

例子:

let getKeys = function (obj) {
  let keysArr = [];
  for (var key in obj) {
    keysArr.push(key);
  }
  console.log(keysArr);
}
let obj = {
  name: 'Jack',
  age: 25
}
getKeys(obj);

或者,我们可以将 var getKeys 替换为 Object.prototype.keys 以允许我们在任何对象上调用 .keys()。
但是,扩展原型有一些副作用,不推荐。

我们还可以使用 for...in 构造来迭代对象的属性名称。

但是,这样做时,我们将遍历对象原型链中的所有属性名称。
要仅迭代对象的属性,我们可以使用 hasOwnProperty() 方法,如下所示:

for (var key in obj) {
  if (obj.hasOwnProperty(key)) {
    /* code here */
  }
}

例子:

let user = {
  name: 'Jack',
  age: 25
}
if (user.hasOwnProperty("name")) {
  console.log(user.name);
}
日期:2020-06-02 22:16:22 来源:oir作者:oir