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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。