您好,登錄后才能下訂單哦!
如何使用JavaScript Proxy()對(duì)象?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
JavaScript中的代理對(duì)象用于定義基本操作的自定義行為(例如,屬性查找,賦值,枚舉,函數(shù)調(diào)用等)。
語法:
var p = new Proxy(target, handler);
參數(shù):代理對(duì)象接受如上所述的兩個(gè)參數(shù),如下所述:
target:要使用Proxy包裝的目標(biāo)對(duì)象(可以是任何類型的對(duì)象,包括函數(shù),類,甚至是另一個(gè)代理)。
handler:一個(gè)對(duì)象,其屬性是在對(duì)其執(zhí)行操作時(shí)定義代理行為的函數(shù)。
例:
<script> const Person = { Name: 'John Nash', Age: 25 }; const handler = { // target表示Person,而prop表示代理屬性。 get: function(target, prop) { if (prop === 'FirstName') { return target.Name.split(' ')[0]; } if (prop === 'LastName') { return target.Name.split(' ').pop(); } else { return Reflect.get(target,prop); } } }; const proxy1 = new Proxy(Person, handler); document.write(proxy1 + "<br>"); // 雖然沒有像FirstName和LastName那樣的屬性,但是我們?nèi)匀猾@取到它們,就好像它們是屬性而不是函數(shù)一樣。 document.write(proxy1.FirstName + "<br>"); document.write(proxy1.LastName + "<br>"); </script>
輸出:
[object Object] John Nash
注意:如果安裝了NodeJs,上面的代碼可以直接在終端運(yùn)行,否則可以在HTML文件中運(yùn)行,方法是在script標(biāo)簽中粘貼上面的代碼,然后在任何web瀏覽器的控制臺(tái)中檢查輸出。
看完上述內(nèi)容,你們掌握如何使用JavaScript Proxy()對(duì)象的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。