當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaScript Proxy()用法及代碼示例


JavaScript proxy() 構造函數用於返回對象的代理構造函數(例如屬性查找、賦值、枚舉、函數調用等)。

用法:

let p = new Proxy(target, handler);

參數:代理對象接受如上所述和如下所述的兩個參數:

  • target:用 Proxy 包裝的目標對象(可以是任何類型的對象,包括函數、類,甚至另一個代理)。
  • handler:一個對象,其屬性是定義代理在對其執行操作時的行為的函數。

例子:

HTML


const Person = {
    Name: 'John Nash',
    Age: 25
};
const handler = {
    // target represents the Person while prop represents
    // proxy property.
    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);
console.log(proxy1);
// Though there is no Property as FirstName and LastName,
// still we get them as if they were property not function.
console.log(proxy1.FirstName);
console.log(proxy1.LastName);

輸出:

[object Object]
John
Nash

注意:如果安裝了NodeJs,上麵的代碼可以直接在終端中運行,否則通過將上麵的內容粘貼到腳本標簽中來在 HTML 文件中運行它,並在任何 Web 瀏覽器的控製台中檢查輸出。


相關用法


注:本文由純淨天空篩選整理自imdhruvgupta大神的英文原創作品 JavaScript Proxy() Constructor。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。