一.Reflect对象基础

Reflect对象是ES6出现的新的API,用于操作对象内部的方法。

特点:

1. 对于操作有明确的返回结果。如返回布尔值表示操作成功与否

2. 和Proxy的拦截方法一一对应,实现操作的默认行为

3.将in,delete,new等命令,用方法实现

4.该对象的方法将逐渐取代Object上的方法

二.静态方法

和Proxy的拦截方法一一对应,一共有13个方法;

所有方法的第一个参数都必须是对象。否则报错。

返回布尔值的方法有:

1. Reflect.set(target,propKey, value, receiver)

target[propKey] = value; // 操作是否成功

如果传入receiver,则this指向receiver

2. Reflect.has(target, propKey)

propKey in target

3. Reflect.deleteProperty(target, propKey)

delete target[propKey] // 操作是否成功

4. Reflect.setPrototypeOf(target, proto)

target.__proto__ = proto; // 操作是否成功

5. Reflect.defineProperty(target, propKey, propDescriotor)

Object.defineProperty(target, propKey, propDescriptor)//操作是否成功

6. Reflect.isExtensible(target)

Object.isExtensible(target)

7.Reflect.preventExtensions(target)

Object.preventExtensions(target)// 返回操作是否成功

返回非布尔值的方法有:

1. Reflect.get(target, propKey,receiver)

target[propKey]

1.如果方法中传入了receiver参数,那么,如果getter方法中有this,this指向receiver

2.如果不存在,返回undefined

2. Reflect.construct(Target, args)

new Target(...args)

3. Reflect.getPrototypeOf(target)

target.__proto__

4. Reflect.apply(fn, thisArg, args)

Function.prototype.apply.call(target, thisArg, args);

5. Reflect.getOwnPropertyDescriptor(target, propKey)

Object.getOwnPropertyDescriptor(target, propKey)

6.Reflect.ownKeys(target)

Object.getOwnPropertyNames(target) +
Object.getOwnPropertySymbols(target)

Reflect对象的更多相关文章

  1. es6 Reflect对象详解

    Reflect是ES6为操作对象而提供的新API,而这个API设计的目的只要有: 将Object对象的一些属于语言内部的方法放到Reflect对象上,从Reflect上能拿到语言内部的方法.如:Obj ...

  2. ES6引入的Reflect对象目的何在?

    Reflect对象其实就是为了取代Object对象.取代原因有一下几点: 1)Object对象的一些内部方法放在了Reflect上面,比如:Object.defineProperty.主要是优化了语言 ...

  3. ES6新特性:Javascript中的Reflect对象

    Reflect介绍: Reflect这个对象在我的node(v4.4.3)中还没有实现, babel(6.7.7)也没有实现 ,新版本的chrome是支持的, ff比较早就支持Proxy和Reflec ...

  4. 12,13 Proxy和Reflect

    Proxy和Reflect Proxy(代理) Proxy用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种"元编程"(meta programming),即对编程 ...

  5. ES6 Proxy和Reflect(下)

    construct() construct方法用于拦截new命令. var handler = { construct (target, args) { return new target(...ar ...

  6. es6重点笔记:Symbol,Set,Map,Proxy,Reflect

    一,Symbol 原始数据类型,不是对象,它是JavaScript第七种数据类型,表示独一无二的值.Symbol是通过Symbol函数生成的: let s = Symbol(); typeof s / ...

  7. es6学习笔记-Proxy、Reflect、Promise

    Proxy Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程. Proxy 可以理解成,在目标对象之前 ...

  8. 深入理解 ES6中的 Reflect

    阅读目录 一:Reflect.get(target, name, receiver) 二:Reflect.set(target,name,value,receiver) 三:Reflect.apply ...

  9. ES6走一波 Proxy/Reflect

    Proxy:像拦截器,对目标对象修改等进行拦截,是一种元编程(meta programming),即修改JS语言本身. //生成proxy实例,两个参数都是对象,targetObj是要拦截的目标对象, ...

随机推荐

  1. TZOJ2882: 美食节之感恩父母

    #include<stdio.h> int main() { ],b[],i,j,max,m,t1,t2,t3; while(scanf("%d",&m),m) ...

  2. Python使用datetime来判断近七天

    目录 strptime 使用strptime来格式化字符串 datetime.datetime.strptime("2019-10-02", "%Y-%m-%d" ...

  3. python 创建es mapping

    import requests def get_(): url = "http://127.0.0.1:9200/indextest/_mapping?pretty" ss = r ...

  4. 时间格式_java

    @Test public void testDate(){ Date date=new Date(); System.out.println(date); /*日期格式*/ DateFormat df ...

  5. 【爬虫集合】抖音API分析

    1. 分析接口 Charles注册码 Registered Name: https://zhile.io License Key: 48891cf209c6d32bf4 抖音API分析 抖音.猫眼网页 ...

  6. [异步请求]ajax、axios、fetch之间的详细区别以及优缺点

    1.jQuery ajax  $.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () ...

  7. 数据库与MySQL进阶(4)

    1,事务 事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚. 1.1 ACID四大特性 原子性(Atomicity) 事务被视为不 ...

  8. 浅析web网站反向代理的配置

    一.背景 最近在部署项目到web服务器上时,该项目有一个打开视频监控的功能,视频的服务器是一台内网的服务器,不允许设置外网端口访问,网站服务器和视频服务器在同一个局域网内,可以相互联通.网络拓扑图如下 ...

  9. Vibe

    在读研和工作之间徘徊了半年,看着一个个好友工作.保研,生活安排得井井有条,我也是时候收拾心情,整装前进了.既然选择了图像,就一定要好好做下去. 今天开始第一个算法,Vibe. ViBe是一种像素级视频 ...

  10. CAS单点登录相关配置

    一.CAS单点登录服务端的部署 部署 把CAS所对应的war包部署到tomcat中 4.品优购资源V1.3\配套软件\配套软件\CAS\cas.war 配置 更改tomcat的端口号 <Conn ...