ECMA Script 6_行爲重定義 Proxy

行爲重定義 Proxyspa

在目標對象以前架設一層「攔截」,外界對該對象的訪問,都必須先經過這層攔截代理

所以提供了一種機制,能夠對外界的訪問進行過濾和改寫code

Proxy 這個詞的原意是代理,用在這裏表示由它來"代理"某些操做,能夠譯爲 "代理器"對象

  • var obj = new Proxy({}, { get: function (target, key, receiver) { console.log(`getting ${key}!`); return Reflect.get(target, key, receiver); }, set: function (target, key, value, receiver) { console.log(`setting ${key}!`); return Reflect.set(target, key, value, receiver); } }); // 返回一個 有代理的 新對象

    /**** ****/

      obj.count = 1;
      // setting count!blog


      ++obj.count;
      // getting count!
      // setting count!
      // 2get

     

上面代碼對一個空對象架設了一層攔截,重定義了屬性的讀取(get)和設置(set)行爲。io

Proxy 實際上重載(overload)了點運算符,即用本身的定義覆蓋了語言的原始定義console

5function

5class

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

5

相關文章
相關標籤/搜索