成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Proxy(代理,攔截器),Reflect(反射)

張紅新 / 2339人閱讀

Proxy(代理,攔截器),Reflect(反射)

Proxy:

代理:

var duixaing = {
        "name":"小胖",
        "age":25,
        "sex":"男"
    }
    duixaing.name="老胖";
    console.log(duixaing.name);//打?。豪吓?。
    console.log(duixaing);//打印:Object {name: "老胖", age: 25, sex: "男"}。
            
    var obj = {
        "name":"小胖",
        "age":25,
        "sex":"男"
    }

攔截:

var porxObj = new Proxy(obj,{
        set:function(traget,key,value){
            if(value == "老胖"){
                traget[key]=value;
            }
        },
        get:function(traget,key){
            if(traget[key]==undefined){
                return "我沒有該屬性";
            }else{
                return traget[key];
            }
        }
    });
    porxObj.name="老胖";
    console.log(obj);//打?。篛bject {name: "老胖", age: 25, sex: "男"}。
    console.log(porxObj.xh);//打?。何覜]有該屬性。
    console.log(porxObj.name);//打?。豪吓帧?    //set:設(shè)置屬性;
    //get:獲取屬性;
注釋:Proxy要傳兩個值,第一個值是要代理的對象,第二個值是要做哪些操作;

Reflect:

var obj = {
        name:"老胖",
        age:21,
        sex:"男"
    }
            
    //Object.defineProperty(obj,"school",{value:"師徒教育"});

定義屬性:

Reflect.defineProperty(obj,"school",{value:"師徒教育"});
    console.log(obj);
    //讓Object操作變?yōu)楹瘮?shù)行為:
    //delete obj.name;
    Reflect.deleteProperty(obj,"name");
    console.log(obj);
    console.log(Reflect.has(obj,"age"));
    //是否有沒有這個屬性,如果返回true,沒有返回false;

Reflect對象的方法與Proxy對象的方法一一對應(yīng):

var porxObj = new Proxy(obj,{
    set:function(traget,key,value){
        if(value == "老胖"){
            Reflect.set(traget,key,value);
        }
    },
    get:function(traget,key){
        if(traget[key]==undefined){
            return "我沒有該屬性";
        }else{
            return Reflect.get(traget,key);
        }
    }
});
注釋:Reflect一樣都是es6提供的用來操作對象API(接口,文檔);

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84128.html

相關(guān)文章

  • 《深入理解ES6》筆記——代理Proxy)和反射Reflection)API(12)

    摘要:方法與代理處理程序的方法相同。使用給目標(biāo)函數(shù)傳入指定的參數(shù)。當(dāng)然,不用反射也可以讀取的值。的例子我們可以理解成是攔截了方法,然后傳入?yún)?shù),將返回值賦值給,這樣我們就能在需要讀取這個返回值的時候調(diào)用。這種代理模式和的代理有異曲同工之妙。 反射 Reflect 當(dāng)你見到一個新的API,不明白的時候,就在瀏覽器打印出來看看它的樣子。 showImg(https://segmentfault....

    ZHAO_ 評論0 收藏0
  • 《深入理解ES6》筆記——代理Proxy)和反射Reflection)API(12)

    摘要:方法與代理處理程序的方法相同。使用給目標(biāo)函數(shù)傳入指定的參數(shù)。當(dāng)然,不用反射也可以讀取的值。的例子我們可以理解成是攔截了方法,然后傳入?yún)?shù),將返回值賦值給,這樣我們就能在需要讀取這個返回值的時候調(diào)用。這種代理模式和的代理有異曲同工之妙。 反射 Reflect 當(dāng)你見到一個新的API,不明白的時候,就在瀏覽器打印出來看看它的樣子。 showImg(https://segmentfault....

    shiina 評論0 收藏0
  • Proxy(代理器/截器)Reflect反射

    摘要:代理器攔截器反射和一樣都是用來操作對象的代理操作代理器同樣具有方法小花男小花沒有該屬性李小花反射和一樣都是用來操作對象的小花女師徒教育小花沒有該屬性李小花主要就是在執(zhí)行函數(shù)之前代理一下完事在執(zhí)行 Proxy(代理器/攔截器)Reflect反射 Reflect和Proxy一樣 都是es6用來操作對象的 API Proxy 代理操作 Proxy代理器 var proxy =...

    Batkid 評論0 收藏0
  • 【ES6】改變 JS 內(nèi)置行為的代理反射

    摘要:通過對這些底層內(nèi)置對象的代理陷阱和反射函數(shù),讓開發(fā)者能進(jìn)一步接近引擎的能力。顯然,與要求代理目標(biāo)對象必須是一個函數(shù),這兩個代理陷阱在函數(shù)的執(zhí)行方式上開啟了很多的可能性,結(jié)合使用就可以完全控制任意的代理目標(biāo)函數(shù)的行為。 代理(Proxy)可以攔截并改變 JS 引擎的底層操作,如數(shù)據(jù)讀取、屬性定義、函數(shù)構(gòu)造等一系列操作。ES6 通過對這些底層內(nèi)置對象的代理陷阱和反射函數(shù),讓開發(fā)者能進(jìn)一步接...

    lushan 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<