Reflect是什么?

Reflect 是一个内置的 JavaScript 对象,提供了一组静态方法,这些方法对应于一些操作符,以及一些常见的操作。Reflect 对象的方法可以被用来获取对象属性、设置属性、调用函数、构造对象等。以下是一些 Reflect 对象常用的方法:

  1. Reflect.get(target, propertyKey[, receiver]):返回指定属性的值。类似于直接访问属性的方式 target[propertyKey],但是提供了更灵活的方式,并且可以避免出现某些异常情况。

  2. Reflect.set(target, propertyKey, value[, receiver]):设置指定属性的值。类似于直接赋值的方式 target[propertyKey] = value,但是具有更多的控制和处理能力。

  3. Reflect.has(target, propertyKey):判断指定属性是否存在于对象中。

  4. Reflect.deleteProperty(target, propertyKey):删除对象的指定属性。

  5. Reflect.apply(func, thisArg, args):调用一个函数,可以传入指定的 this 值和参数数组。

  6. Reflect.construct(target, args[, newTarget]):以指定参数创建一个新对象,类似于 new 操作符。

  7. Reflect.defineProperty(target, propertyKey, attributes):定义一个新的属性或修改已有的属性的描述符。

  8. Reflect.getOwnPropertyDescriptor(target, propertyKey):返回指定属性的属性描述符。

  9. Reflect.getPrototypeOf(target):返回指定对象的原型。

Reflect 方法提供了一种更规范化和统一的方式来进行对象操作,使得代码更加清晰易懂,同时也更容易维护和扩展。在使用 Reflect 方法时,可以更好地区分操作成功与失败,并且更加灵活地处理各种操作。


最直观的就是项目中引入了ESlint/husky,当想判断obj中是否存在属性a,之前会这么写:obj.hasOwnProperty('a')
结果就是Eslint/husky提示不允许访问原型链的属性/方法。
那么就可以使用Reflect.has(obj, 'a'),同时不会报错。

posted @   脆皮鸡  阅读(70)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
历史上的今天:
2023-02-21 前端等级&面试前言
2023-02-21 07.React
2023-02-21 06Vue
2023-02-21 03HTML && CSS
2023-02-21 04JavaScript
2023-02-21 05TypeScript
2023-02-21 01计算机网络
点击右上角即可分享
微信分享提示