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 瀏覽器的控製台中檢查輸出。
相關用法
- JavaScript Proxy revocable()用法及代碼示例
- JavaScript Promise.race()用法及代碼示例
- JavaScript Promise finally()用法及代碼示例
- JavaScript Promise then()用法及代碼示例
- JavaScript Promise catch()用法及代碼示例
- JavaScript Promise any()用法及代碼示例
- JavaScript Math cosh()用法及代碼示例
- JavaScript Math sinh()用法及代碼示例
- JavaScript Math sin()用法及代碼示例
- JavaScript Math cos()用法及代碼示例
- JavaScript Math tan()用法及代碼示例
- JavaScript Math abs()用法及代碼示例
- JavaScript Math pow()用法及代碼示例
- JavaScript Math asin()用法及代碼示例
- JavaScript Math acos()用法及代碼示例
- JavaScript Math atan()用法及代碼示例
- JavaScript Math ceil()用法及代碼示例
- JavaScript Math floor()用法及代碼示例
- JavaScript Math round()用法及代碼示例
- JavaScript Math trunc()用法及代碼示例
- JavaScript Math max()用法及代碼示例
- JavaScript Math min()用法及代碼示例
- JavaScript Math sqrt()用法及代碼示例
- JavaScript Math sign()用法及代碼示例
- JavaScript Math log()用法及代碼示例
注:本文由純淨天空篩選整理自imdhruvgupta大神的英文原創作品 JavaScript Proxy() Constructor。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。