handler.construct()
JavaScript handler.construct()方法
handler.construct()方法用于拦截新操作。此方法返回一个对象。
语法
construct: function(target, argumentsList, newTarget)
参数
target:目标对象。
argumentsList:构造函数列表。
newTarget:最初在p上方调用的构造方法。
返回值
此方法返回一个对象。
浏览器支持
Chrome |
49 |
Edge |
12 |
Firefox |
18 |
Opera |
36 |
示例1
var B= function(text) {
this.text = text;
};
var Button1 = new Proxy(B, {
construct: function(target, parameters) {
document.writeln('Java Script');
var button= Object.create(target.prototype);
target.apply(button, parameters);
return button;
}
});
var button = new Button1('proxy Constructor');
document.writeln(button.text);
输出:
Java Script proxy Constructor
示例2
var pro = new Proxy(function()
{}, {
construct: function(objTarget, args, oldConstructor) {
return { Value : args[0] + " to anybody" }
}
})
document.write(JSON.stringify(new pro("Hello "), null, ' '))
输出:
{ "Value": "Hello to anybody" }
示例3
function M(val) {
this.val = val;
}
const N = {
construct(target, args) {
document.writeln('Constructor called');
return new target(...args);
}
};
const proxy= new Proxy(M, N)
document.writeln(new proxy('Proxi').val);
输出: