Rowan Liu's Tech
Home
Blog
CSS
JS
lib
Read
About
GitHub
Home
Blog
CSS
JS
lib
Read
About
GitHub
  • 万丈高楼平地起,地基实在很重要
  • ES2015

    • 概要
    • let和const
    • 函数的扩展
    • Generator异步应用
    • Generator函数
    • Iterator(遍历器)
    • 数值的扩展
    • 对象的扩展
    • Promise
    • /js/ECMAScript6/Proxy-Reflect.html
    • Set/Map
    • 字符串的扩展
    • /js/ECMAScript6/Symbol.html
    • /js/ECMAScript6/variable-destructor-assignment.html
  • basic

    • apply、call
    • ajax
    • arguments
    • 计算盒模型的各种尺寸

Proxy

Proxy用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”,即对编程语言进行编程。

Proxy可以理解成,在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问 进行过滤和改写。Proxy这个词的原意是代理,用在这里表示代理某些操作,可以译为“代理器”;

暂时没用。

Reflect(中文意思,反应、体现、思考)

Reflect和Proxy对象一样,也是ES6为了操作对象而提供的新API。Reflect对象的设计目的有一下几个。

  • 将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。
  • 修改某些Object方法的返回结果,让其变得更合理。比如Object.defineProperty(obj, name, desc)...
  • 让Object操作都变成函数行为。比如name in obj和delete obj[name],而Reflect.has(obj, name)和 Reflect。deleteProperty(obj,name)让它们变成了函数行为。
  • Reflect对象的方法与Proxy对象的方法一一对应,只要是Proxy对象的方法,就能在Reflect对象上找到对应的方法。
Edit this page
Last Updated: 2026/1/12 10:15
Contributors: Rowan Liu
Prev
Promise
Next
Set/Map