久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      一起聊聊Javascript之Proxy與Reflect

      本篇文章給大家?guī)砹岁P(guān)于JavaScript中Proxy與Reflect的相關(guān)知識(shí),希望對(duì)大家有幫助。

      一起聊聊Javascript之Proxy與Reflect

      ECMAScript 在 ES6 規(guī)范中加入了 Proxy 與 Reflect 兩個(gè)新特性,這兩個(gè)新特性增強(qiáng)了 JavaScript 中對(duì)象訪問的可控性,使得 JS 模塊、類的封裝能夠更加嚴(yán)密與簡(jiǎn)單,也讓操作對(duì)象時(shí)的報(bào)錯(cuò)變得更加可控。

      Proxy

      Proxy,正如其名,代理。這個(gè)接口可以給指定的對(duì)象創(chuàng)建一個(gè)代理對(duì)象,對(duì)代理對(duì)象的任何操作,如:訪問屬性、對(duì)屬性賦值、函數(shù)調(diào)用,都會(huì)被攔截,然后交由我們定義的函數(shù)來處理相應(yīng)的操作,
      JavaScript 的特性讓對(duì)象有很大的操作空間,同時(shí) JavaScript 也提供了很多方法讓我們?nèi)ジ脑鞂?duì)象,可以隨意添加屬性、隨意刪除屬性、隨意更改對(duì)象的原型……但是此前 Object 類提供的 API 有許多缺點(diǎn):

      • 如果要用 Object.defineProperty 定義某個(gè)名稱集合內(nèi)的全部屬性,只能通過枚舉的方式為全部屬性設(shè)置 getter 和 setter,而且由于只能每個(gè)屬性創(chuàng)造一個(gè)函數(shù),集合太大會(huì)造成性能問題。
      • Object.defineProperty 定義后的屬性,如果仍想擁有正常的存取功能,只能將數(shù)據(jù)存放在對(duì)象的另一個(gè)屬性名上或者需要另一個(gè)對(duì)象來存放數(shù)據(jù),對(duì)于只想監(jiān)聽屬性的場(chǎng)合尤為不便。
      • Object.defineProperty 無法修改類中不可重新定義的屬性,例如數(shù)組的 length 屬性。
      • 對(duì)于那些尚不存在且名稱不好預(yù)測(cè)的屬性,Object.defineProperty 愛莫能助。
      • 無法修改或阻止某些行為,如:枚舉屬性名、修改對(duì)象原型。

      Proxy 接口的出現(xiàn)很好地解決了這些問題:

      • Proxy 接口將對(duì)對(duì)象的所有操作歸類到數(shù)個(gè)類別中,通過 Proxy 提供的陷阱攔截特定的操作,再在我們定義的處理函數(shù)中進(jìn)行邏輯判斷就可以實(shí)現(xiàn)復(fù)雜的功能,并且還能控制比以前
      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)