真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么使用Proxy來代理Js中的類-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關怎么使用Proxy來代理Js中的類,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

為徐州等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及徐州網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站制作、網(wǎng)站建設、徐州網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

Proxy對象(Proxy)是ES6的一個非??釁s鮮為人知的特性。雖然這個特性存在已久,但是我還是想在本文中對其稍作解釋,并用一個例子說明一下它的用法。如何使用Proxy來代理Js中的類?

如何使用代理Proxy

正如MDN上簡單而枯燥的定義:

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

雖然這是一個不錯的總結,但是我卻并沒有從中搞清楚Proxy能做什么,以及它能幫我們實現(xiàn)什么。

首先,Proxy的概念來源于元編程。簡單的說,元編程是允許我們運行我們編寫的應用程序(或核心)代碼的代碼。例如,臭名昭著的eval函數(shù)允許我們將字符串代碼當做可執(zhí)行代碼來執(zhí)行,它是就屬于元編程領域。

ProxyAPI允許我們在對象和其消費實體中創(chuàng)建中間層,這種特性為我們提供了控制該對象的能力,比如可以決定怎樣去進行它的get和set,甚至可以自定義當訪問這個對象上不存在的屬性的時候我們可以做些什么。

如何使用代理Proxy的API

varp=newProxy(target,handler);

Proxy構造函數(shù)獲取一個target對象,和一個用來攔截target對象不同行為的handler對象。你可以設置下面這些攔截項:

has—?攔截in操作。比如,你可以用它來隱藏對象上某些屬性。

get—?用來攔截讀取操作。比如當試圖讀取不存在的屬性時,你可以用它來返回默認值。

set—用來攔截賦值操作。比如給屬性賦值的時候你可以增加驗證的邏輯,如果驗證不通過可以拋出錯誤。

apply—用來攔截函數(shù)調(diào)用操作。比如,你可以把所有的函數(shù)調(diào)用都包裹在try/catch語句塊中。

這只是一部分攔截項,你可以在MDN上找到完整的列表。

下面是將Proxy用在驗證上的一個簡單的例子:

constCar={
  maker:'BMW',
  year:2018,
  };
  constproxyCar=newProxy(Car,{
  set(obj,prop,value){
  if(prop==='maker'&&value.length<1){
  thrownewError('Invalidmaker');
  }
  if(prop==='year'&&typeofvalue!=='number'){
  thrownewError('Invalidyear');
  }
  obj[prop]=value;
  returntrue;
  }
  });
  proxyCar.maker='';//throwexception
  proxyCar.year='1999';//throwexception

可以看到,我們可以用Proxy來驗證賦給被代理對象的值。

關于“怎么使用Proxy來代理Js中的類”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。


新聞名稱:怎么使用Proxy來代理Js中的類-創(chuàng)新互聯(lián)
本文路徑:http://weahome.cn/article/ppesd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部