這篇文章將為大家詳細講解有關使用Proxy代理的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Proxy對象(Proxy)是ES6的一個非常酷卻鮮為人知的特性。雖然這個特性存在已久,但是我還是想在本文中對其稍作解釋,并用一個例子說明一下它的用法。
使用Proxy代理來調試
為了在實踐中展示Proxy的能力,我創建了一個簡單的監測庫,用來監測給定的對象或類,監測項如下:
函數執行時間
函數的調用者或屬性的訪問者
統計每個函數或屬性的被訪問次數。
這是通過在訪問任意對象、類、甚至是函數時,調用一個名為proxyTrack的函數來完成的。
如果你希望監測是誰給一個對象的屬性賦的值,或者一個函數執行了多久、執行了多少次、誰執行的,這個庫將非常有用。我知道可能還有其他更好的工具來實現上面的功能,但是在這里我創建這個庫就是為了用一用這個API。
使用proxyTrack代理
首先,我們看看怎么用:
functionMyClass(){} MyClass.prototype={ isPrime:function(){ constnum=this.num; for(vari=2;i<num;i++) if(num%i===0)returnfalse; returnnum!==1&&num!==0; }, num:null, }; MyClass.prototype.constructor=MyClass; consttrackedClass=proxyTrack(MyClass); functionstart(){ constmy=newtrackedClass(); my.num=573723653; if(!my.isPrime()){ return`${my.num}isnotprime`; } } functionmain(){ start(); } main();
如果我們運行這段代碼,控制臺將會輸出:
MyClass.numisbeingsetbystartforthe1time MyClass.numisbeinggetbyisPrimeforthe1time MyClass.isPrimewascalledbystartforthe1timeandtook0mils. MyClass.numisbeinggetbystartforthe2time
proxyTrack接受2個參數:第一個是要監測的對象/類,第二個是一個配置項對象,如果沒傳遞的話將被置為默認值。
關于“使用Proxy代理的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
當前標題:使用Proxy代理的方法-創新互聯
網址分享:http://www.2m8n56k.cn/article38/deocsp.html
成都網站建設公司_創新互聯,為您提供動態網站、響應式網站、品牌網站建設、微信公眾號、網站建設、自適應網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯