溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用JavaScript Proxy()對(duì)象

發(fā)布時(shí)間:2020-07-14 09:59:08 來源:億速云 閱讀:189 作者:Leah 欄目:web開發(fā)

如何使用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è)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(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)容。

AI