当前位置:首页 > JavaScript

Js实现allkeys

2026-04-06 23:40:26JavaScript

实现 allKeys 方法

在 JavaScript 中,allKeys 方法的目标是获取对象及其原型链上的所有可枚举属性。以下是一种实现方式:

Js实现allkeys

function allKeys(obj) {
  const keys = [];
  for (const key in obj) {
    keys.push(key);
  }
  return keys;
}

排除原型链上的属性

如果只需要对象自身的属性(不包括原型链),可以使用 Object.getOwnPropertyNames

Js实现allkeys

function ownKeys(obj) {
  return Object.getOwnPropertyNames(obj);
}

包括不可枚举属性

如果需要包含不可枚举的属性,可以结合 Object.getOwnPropertyNames 和递归遍历原型链:

function getAllKeys(obj) {
  let keys = [];
  let current = obj;
  while (current !== null && current !== Object.prototype) {
    keys = keys.concat(Object.getOwnPropertyNames(current));
    current = Object.getPrototypeOf(current);
  }
  return [...new Set(keys)];
}

使用 ES6 的 Reflect

ES6 提供了 Reflect.ownKeys 方法,可以获取对象自身的所有属性(包括不可枚举和 Symbol 属性):

function reflectKeys(obj) {
  return Reflect.ownKeys(obj);
}

注意事项

  • 使用 for...in 会遍历原型链上的可枚举属性
  • Object.keys 只返回对象自身的可枚举属性
  • Object.getOwnPropertyNames 返回对象自身的所有属性(不包括 Symbol)
  • Reflect.ownKeys 是最全面的方法,包含所有自身属性

标签: Jsallkeys
分享给朋友:

相关文章

怎么用Js实现图片移动

怎么用Js实现图片移动

使用JavaScript实现图片移动 通过修改CSS属性实现移动 使用JavaScript动态修改图片的style.left和style.top属性可以实现移动效果。需要将图片的position属性设…

Js实现对齐

Js实现对齐

使用CSS实现文本对齐 CSS提供了多种文本对齐方式,通过text-align属性可以轻松实现左对齐、右对齐、居中对齐和两端对齐。例如: .left-align { text-align: le…

Js实现 toggle

Js实现 toggle

使用 classList.toggle 方法 通过 classList.toggle 可以轻松切换元素的类名。该方法接受一个类名作为参数,如果元素已存在该类名则移除,不存在则添加。 const bu…

Js 扫描实现

Js 扫描实现

实现 JavaScript 扫描功能 JavaScript 扫描功能通常涉及文件系统遍历、内容分析或网络请求监控。以下是几种常见场景的实现方法: 文件系统扫描 使用 Node.js 的 fs 模块可…

怎么用Js实现图片移动

怎么用Js实现图片移动

使用CSS和JavaScript实现图片移动 通过修改图片的CSS属性(如left、top或transform)可以实现图片移动效果。以下是两种常见方法: 方法一:通过修改left和top属性 假设…

Js实现划词翻译

Js实现划词翻译

划词翻译的实现思路 划词翻译功能可以通过监听用户鼠标选中文本的事件,获取选中的文本内容,然后调用翻译API进行翻译,最后将翻译结果显示在页面上。 获取选中文本 通过window.getSelecti…