您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關使用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代理的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。