美文网首页
ES6 - Reflect

ES6 - Reflect

作者: 恒星的背影 | 来源:发表于2018-10-02 15:33 被阅读0次

Object.defineProperty(obj, name, desc)在无法定义属性时,会抛出一个错误,而Reflect.defineProperty(obj, name, desc)则会返回 false

name in obj 对应 Reflect.has(obj, name)
delete obj[name] 对应 Reflect.deleteProperty(obj, name)

Reflect 对象的方法与 Proxy 对象的方法一一对应


静态方法

Reflect.get(target, name, receiver) 查找并返回 target 对象的 name 属性,如果没有该属性,则返回 undefined
Reflect.set(target, name, value, receiver) 设置 target 对象的 name 属性等于 value
Reflect.has(target, name) 对应 name in obj 里面的 in 运算符
Reflect.deleteProperty(target, name) 等同于delete obj[name],用于删除对象的属性。
Reflect.construct(target, args) 等同于 new target(...args),这提供了一种不使用new,来调用构造函数的方法。
Reflect.getPrototypeOf(target) 用于读取对象的__proto__属性,对应Object.getPrototypeOf(obj)
Reflect.setPrototypeOf(target, prototype) 用于设置目标对象的原型(prototype),对应Object.setPrototypeOf(obj, newProto) 方法
Reflect.apply(target, thisArg, args)
Reflect.defineProperty(target, name, desc) 基本等同于Object.defineProperty,用来为对象定义属性。后者会被逐渐废除。
Reflect.getOwnPropertyDescriptor(target, name) 基本等同于Object.getOwnPropertyDescriptor(对第一个参数不是对象的情况,两者处理不同),用于得到指定属性的描述对象,后者会被逐渐废除。
Reflect.isExtensible(target) 对应 Object.isExtensible
Reflect.preventExtensions(target) 对应 Object.preventExtensions 方法,用于让一个对象变为不可扩展
Reflect.ownKeys(target) 等同于 Object.getOwnPropertyNames 与 Object.getOwnPropertySymbols 之和


Reflect 出现的意义

把以前存在的一些方法又重新定义了一遍,可能是弥补以前的失误吧
这些新方法的特点:
不会自动转换类型,类型错误时直接报错
通过返回 Boolean 值表示操作的成功或失败
有点函数式的特点,把以前一些需要运算符符进行的操作转为直接的函数调用

相关文章

  • ES6——Reflect 与 Proxy

    ES6 之 Proxy 介绍深入实践 ES6 Proxy & Reflect 1.Proxy Proxy 可以对目...

  • ES6标准入门读书笔记12(Reflect)未完待续

    概述 § ⇧ Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect...

  • Reflect

    概述 § ⇧ Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect...

  • Reflect 对象

    Reflect 对象与 Proxy 对象一样,也是 ES6 为了操作对象而提供的新的API。Reflect 对象的...

  • ts + reflect 编程, 实现 类 spring bo

    es6 提供了 reflect api, es7 的 提供有装饰器。 我们可以尝试用装饰器 + reflect 实...

  • ES6 Reflect

    一、概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象...

  • Reflect对象

    Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的...

  • Reflect用法详解

    概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设...

  • ES6 Reflect

    Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API。Reflect对象的设计目的...

  • ES6 - Reflect

    Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API Reflect对象的设计目的...

网友评论

      本文标题:ES6 - Reflect

      本文链接:https://www.haomeiwen.com/subject/lhonoftx.html