📅  最后修改于: 2020-10-25 09:13:56             🧑  作者: Mango
handler.construct()方法用于拦截新操作。此方法返回一个对象。
construct: function(target, argumentsList, newTarget)
目标:目标对象。
argumentsList:构造函数的列表。
newTarget:最初在p上方调用的构造函数。
此方法返回一个对象。
Chrome | 49 |
Edge | 12 |
Firefox | 18 |
Opera | 36 |
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
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" }
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);
输出:
Constructor called Proxi