当前位置:首页 > JavaScript

js实现反射

2026-03-14 09:44:55JavaScript

JavaScript 实现反射的方法

在 JavaScript 中,反射是一种在运行时检查或修改对象结构和行为的能力。以下是几种常见的实现反射的方式:

使用 Object 的静态方法

通过 Object.keys()Object.getOwnPropertyNames() 等方法可以获取对象的属性信息,实现基础的反射功能。

const obj = { a: 1, b: 2 };
const properties = Object.getOwnPropertyNames(obj);
console.log(properties); // ['a', 'b']

使用 Reflect 对象

ES6 引入了 Reflect 对象,提供了一组用于操作对象的静态方法,这些方法与 Proxy 的陷阱方法一一对应。

const obj = { a: 1 };
Reflect.set(obj, 'b', 2); // 设置属性
console.log(Reflect.get(obj, 'b')); // 2

使用 Proxy 对象

Proxy 可以拦截对象的操作,实现更灵活的反射行为。

const handler = {
  get(target, prop) {
    return prop in target ? target[prop] : 'default';
  }
};
const proxy = new Proxy({}, handler);
console.log(proxy.a); // 'default'

检查对象类型

通过 typeofinstanceof 可以检查对象的类型。

const value = [];
console.log(typeof value); // 'object'
console.log(value instanceof Array); // true

动态调用方法

通过字符串名称动态调用对象的方法。

js实现反射

const obj = {
  greet(name) {
    return `Hello, ${name}!`;
  }
};
const methodName = 'greet';
console.log(obj[methodName]('World')); // 'Hello, World!'

以上方法可以根据具体需求选择使用,ReflectProxy 是 ES6 提供的更强大的反射工具。

标签: 反射js
分享给朋友:

相关文章

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的HT…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-containe…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整数…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的J…