日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES6:Reflect

發布時間:2025/3/18 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES6:Reflect 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Reflect

  • 概述。
  • Relflect對象與Proxy對象一樣,也是ES6為了操作對象而提供的新的API。Reflect對象的設計目的有幾個。
    (1)將Object對象的一些明顯屬于語言內部的方法(比如Obejcet.defineProperty),放到Reflect對象上。現階段,某些方法同時在Object喝Reflect對象上部署,未來的新方法將只部署在Reflect對象上。也就是說,從reflect對象上可以拿到語言內部的方法。
    (2)修改某些Object方法的返回結果,讓其變得更合理。比如,Object.defineProperty(obj,name,desc)在無法定義屬性時,會拋出一個錯誤,而Reflect.defineProperty(obj,name,desc)則會返回false。

    //老寫法 try{Object.defineProperty(target,property,attributes);//success }catch(e){//failure }//新寫法 if(Reflect.defineProperty(target,property,attributes)){//success }else{//failure }

    (3)讓Object操作都變成函數行為。某些Object操作是命令式,比如name in obj和delete obj[name],而Reflect.has(obj,name)和Reflect.deleteProperty(obj,name)讓它們變成了函數行為。

    //老寫法 'assign' in Object//true //新寫法 Reflect.has(Object,'assign')//true

    (4)Reflect對象的方法與Proxy對象的方法一一對應,只要是Proxy對象的方法,就能在Reflect對象上找到對應的方法。這就讓Proxy對象可以方便地調用對應的Reflect方法,完成默認行為,作為修改行為的基礎。也就是說,不管Proxy怎么修改默認行為,你總可以在Reflect上獲取默認行為。

    Proxy(target, {set: function(target, name, value, receiver) {var success = Reflect.set(target,name, value, receiver);if (success) {console.log('property ' + name + ' on ' + target + ' set to ' + value);}return success;} });

    上面代碼中,Proxy方法攔截target對象的屬性賦值行為。它采用Reflect.set方法將值賦值給對象的屬性,確保完成原有的行為,然后再部署額外的功能。
    下面是另一個例子。

    var loggedObj = new Proxy(obj, {get(target, name) {console.log('get', target, name);return Reflect.get(target, name);},deleteProperty(target, name) {console.log('delete' + name);return Reflect.deleteProperty(target, name);},has(target, name) {console.log('has' + name);return Reflect.has(target, name);} });

    上面代碼中,每一個Proxy對象的攔截操作(getdeletehas),內部都調用對應的Reflect方法,保證原生行為能夠正常執行。添加的工作,就是將每一個操作輸出一行日志。

    總結

    以上是生活随笔為你收集整理的ES6:Reflect的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。