91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

es6代理模式怎么理解

發布時間:2022-04-01 10:34:03 來源:億速云 閱讀:121 作者:iii 欄目:web開發

本文小編為大家詳細介紹“es6代理模式怎么理解”,內容詳細,步驟清晰,細節處理妥當,希望這篇“es6代理模式怎么理解”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

es6代理模式是一種設計模式,指的是一個類別可以作為其他東西的接口,具體的表現形式就是es6中新增的Proxy對象;Proxy對象用于定義基本操作的自定義行為,語法為“let p=new Proxy(target,handler);”。

本教程操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。

es6代理模式是什么

代理模式(英語:Proxy Pattern)是程序設計中的一種設計模式。

所謂的代理者是指一個類別可以作為其它東西的接口。代理者可以作任何東西的接口:網絡連接、內存中的大對象、文件或其它昂貴或無法復制的資源。

而在JavaScript中代理模式的具體表現形式就是ES6中的新增對象---Proxy

Proxy 的解釋是:

Proxy對象用于定義基本操作的自定義行為(如屬性查找,賦值,枚舉,函數調用等)。

簡單來說: Proxy 對象就是可以讓你去對JavaScript中的一切合法對象的基本操作進行自定義.然后用你自定義的操作去覆蓋其對象的基本操作.也就是當一個對象去執行一個基本操作時,其執行的過程和結果是你自定義的,而不是對象的.

:sweat:好吧,用文字表達可能太復雜了.我們還是直接上代碼吧.

Proxy的語法是:

let p = new Proxy(target, handler);
  • target 是你要代理的對象.它可以是JavaScript中的任何合法對象.如: (數組, 對象, 函數等等)

  • handler 是你要自定義操作方法的一個集合.

  • p 是一個被代理后的新對象,它擁有 target 的一切屬性和方法.只不過其行為和結果是在 handler 中自定義的.

然后讓我們來看這段代碼:

let obj = {
 a: 1,
 b: 2,
}
 
const p = new Proxy(obj, {
 get(target, key, value) {
  if (key === 'c') {
   return '我是自定義的一個結果';
  } else {
   return target[key];
  }
 },
 
 set(target, key, value) {
  if (value === 4) {
   target[key] = '我是自定義的一個結果';
  } else {
   target[key] = value;
  }
 }
})
console.log(obj.a) // 1
console.log(obj.c) // undefined
console.log(p.a) // 1
console.log(p.c) // 我是自定義的一個結果
obj.name = '李白';
console.log(obj.name); // 李白
obj.age = 4;
console.log(obj.age); // 4
p.name = '李白';
console.log(p.name); // 李白
p.age = 4;
console.log(p.age); // 我是自定義的一個結果

從上面這段代碼中,我可以很清楚的看到 Proxy 對象的作用.即是之前所受的 用于定義基本操作的自定義行為 .同樣的 get 和 set 操作.沒有沒代理的對象所得的結果是其JavaScript本身的執行機制運行計算后所得到的.而被代理了的對象的結果則是我們自定義的.

Proxy的兼容性如下:

es6代理模式怎么理解

讀到這里,這篇“es6代理模式怎么理解”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

es6
AI

庆城县| 延吉市| 兴城市| 比如县| 墨江| 府谷县| 个旧市| 富宁县| 柳州市| 寿宁县| 舒兰市| 黔西县| 松滋市| 成安县| 平江县| 土默特右旗| 凉山| 龙口市| 沾益县| 葫芦岛市| 淮南市| 泸水县| 大化| 马边| 和田市| 黄大仙区| 双江| 平安县| 石渠县| 禹州市| 商水县| 石台县| 大兴区| 得荣县| 常熟市| 马鞍山市| 临城县| 民丰县| 建德市| 阿克苏市| 永泰县|