初识Reflect

Reflect

Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。这些方法与proxy handlers 的方法相同。Reflect不是一个函数对象,因此它是不可构造的。

与大多数全局对象不同Reflect并非一个构造函数,所以不能通过new运算符对其进行调用,或者将Reflect对象作为一个函数来调用。Reflect的所有属性和方法都是静态的(就像Math对象)。

Reflect 对象提供了以下静态方法,这些方法与proxy handler methods (en-US)的命名相同.

其中的一些方法与 Object相同, 尽管二者之间存在 某些细微上的差别

静态方法

实例

检测一个对象是否存在特定属性

const apiJson = {
    
    
  name: 'static data',
  type: 'static',
  getData: function() {
    
    
    console.log(`获取的数据类型为:${
      
      this.name}`);
  }
}

Reflect.has(apiJson, 'type');  // true
Reflect.has(apiJson, 'age');   // false

在这里插入图片描述

为这个对象添加一个新属性:

Reflect.set(apiJson, 'data', '静态数据1');

在这里插入图片描述

返回这个对象自身的属性:

Reflect.ownKeys(apiJson)

在这里插入图片描述

// 检测一个对象是否存在特定属性
  const apiJson = {
    
    
    name: 'static data',
    type: 'static',
    getData: function() {
    
    
      console.log(`获取的数据类型为:${
      
      this.name}`);
    }
  }

  console.log(Reflect.has(apiJson, 'type'));  // true
  console.log(Reflect.has(apiJson, 'age'));   // false

  // Reflect.set(apiJson, 'data', '静态数据1');
  console.log(Reflect.set(apiJson, 'data', '静态数据1')); // true

  // 返回这个对象自身的属性
  console.log(Reflect.ownKeys(apiJson));

详细文档请查看MDN: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect

猜你喜欢

转载自blog.csdn.net/weixin_43853746/article/details/122659488