最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ES6中Proxy與Reflect實(shí)現(xiàn)重載(overload)的方法

 更新時(shí)間:2017年03月30日 14:29:59   作者:柒青衿  
這篇文章主要介紹了ES6中Proxy與Reflect實(shí)現(xiàn)重載(overload)的方法,分析了重載的原理及使用Proxy和Reflect來實(shí)現(xiàn)重載的操作步驟與相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例講述了ES6中Proxy與Reflect實(shí)現(xiàn)重載(overload)的方法。分享給大家供大家參考,具體如下:

Proxy與Reflect實(shí)現(xiàn)重載(overload)

從語(yǔ)法角度講JavaScript不支持重載。原因很簡(jiǎn)單,JS中函數(shù)可以傳入任意類型、任意個(gè)數(shù)的參數(shù),通通可以通過在函數(shù)內(nèi)使用this.arguments獲得。這樣,就無(wú)法實(shí)現(xiàn)同名函數(shù)參數(shù)列表不同實(shí)現(xiàn)不同功能。當(dāng)然,在實(shí)際使用過程中,可以人為去檢測(cè)傳入實(shí)參的個(gè)數(shù)及類型,來進(jìn)行不同操作。但是,我認(rèn)為這不能叫做重載。

ES6帶來了Proxy和Reflect,配合使用可以實(shí)現(xiàn)重載。Proxy用于修改某些操作的默認(rèn)行為,相當(dāng)于對(duì)原始想進(jìn)行的操作進(jìn)行“包裝”;Reflect對(duì)象的方法與Proxy對(duì)象的方法一一對(duì)應(yīng),這使得Proxy對(duì)象可以方便的調(diào)用對(duì)應(yīng)的Reflect方法完成默認(rèn)行為。我們可以這樣使用它們:

function LogMessage( m ){
  this.m = m;
}
var message = new LogMessage( 1 );
var overload = new Proxy(message , {
  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);
  }
});
overload.m = 2; //setting m
var s = overload.m; //getting m

看到了沒,是不是很有意思,新創(chuàng)建的Proxy對(duì)象overload可以完成目標(biāo)對(duì)象message的操作,同時(shí),可以通過在默認(rèn)操作之前自定義一些其他操作。我認(rèn)為,這更像Java里的重載。

那么Proxy與Reflect有哪些實(shí)例方法呢?

1.get()
用于攔截某個(gè)屬性的讀取操作。

2.set()
用于攔截某個(gè)屬性的賦值操作。

3.has()
可以隱藏某些屬性,不被in操作符遍歷到。

4.construct()
用于攔截new命令。

5.deleteProperty()
用于攔截delete操作。

6.defineProperty()
用于攔截Object.defineProperty操作。

7.enumerate()
用于攔截for...in循環(huán)。

8.getOwnPropertyDescriptor()
用于攔截Object.getOwnPropertyDescriptor操作。

9.isExtensible()
用于攔截Object.isExtensible操作。

10.preventExtensions()
用于攔截Object.preventExtensions操作。

11.setPrototypeOf()
用于攔截Object.setPrototypeOf操作。

上面很多方法不是很常用,如果感興趣可以去查查相關(guān)資料

希望本文所述對(duì)大家ECMAScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • js自定義事件代碼說明

    js自定義事件代碼說明

    在研發(fā)公展公用后臺(tái)的時(shí)候,用了許多的技巧性的JS,最有代表性就是如下這一例子.
    2011-01-01
  • 深入淺析JavaScript中數(shù)據(jù)共享和數(shù)據(jù)傳遞

    深入淺析JavaScript中數(shù)據(jù)共享和數(shù)據(jù)傳遞

    這篇文章主要介紹了深入淺析JavaScript中數(shù)據(jù)共享和數(shù)據(jù)傳遞的相關(guān)資料,需要的朋友可以參考下
    2016-04-04
  • javascript自定義的addClass()方法

    javascript自定義的addClass()方法

    這篇文章主要介紹了javascript自定義的addClass()方法,通過傳參就可以實(shí)現(xiàn)樣式的添加
    2014-05-05
  • Bootstrap中data-target 到底是什么

    Bootstrap中data-target 到底是什么

    這篇文章主要介紹了Bootstrap中data-target 到底是什么的相關(guān)資料,我目前理解到在bootstrap中data-target,data-toggle等屬性主要有兩種作用,具體哪兩種作用,大家通過本文詳細(xì)了解下
    2017-02-02
  • 微信小程序多項(xiàng)選擇器checkbox

    微信小程序多項(xiàng)選擇器checkbox

    這篇文章主要為大家詳細(xì)介紹了微信小程序多項(xiàng)選擇器checkbox,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • javascript手工制作懸浮菜單

    javascript手工制作懸浮菜單

    這篇文章主要介紹了javascript手工制作懸浮菜單,主要也是想自己練練手,感覺還不錯(cuò),這里推薦給大家。
    2015-02-02
  • js實(shí)現(xiàn)GIF圖片的分解和合成

    js實(shí)現(xiàn)GIF圖片的分解和合成

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)GIF圖片的分解和合成,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • javascript實(shí)現(xiàn)小型區(qū)塊鏈功能

    javascript實(shí)現(xiàn)小型區(qū)塊鏈功能

    這篇文章主要介紹了javascript實(shí)現(xiàn)小型區(qū)塊鏈功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 深入淺出JavaScript中base64編碼原理

    深入淺出JavaScript中base64編碼原理

    今天翻開舊項(xiàng)目發(fā)現(xiàn)挺多圖片相關(guān)的插件都是用?base64?來顯示圖片的。談到?base64,腦海遐想翩翩,思緒回蕩之下?base64?瑕瑜互見。這篇文章主要是記錄了工作中遇見的問題并加以總結(jié),如有不妥請(qǐng)指正
    2023-02-02
  • 淺談js中startsWith 函數(shù)不能在任何瀏覽器兼容的問題

    淺談js中startsWith 函數(shù)不能在任何瀏覽器兼容的問題

    下面小編就為大家?guī)硪黄獪\談js中startsWith 函數(shù)不能在任何瀏覽器兼容的問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03

最新評(píng)論

南郑县| 大丰市| 法库县| 阜新市| 永新县| 东安县| 钟山县| 柞水县| 江孜县| 高雄县| 兰坪| 苗栗县| 太保市| 琼海市| 漯河市| 凤凰县| 丹东市| 雷山县| 乐陵市| 福建省| 屯留县| 精河县| 甘孜县| 瑞金市| 石河子市| 当阳市| 迭部县| 卓尼县| 洛阳市| 宜兰县| 云和县| 夏河县| 昌图县| 泗水县| 河北省| 靖边县| 迁西县| 玉山县| 洛南县| 吉木乃县| 扶沟县|