📜  JavaScript handler Construct()方法

📅  最后修改于: 2020-10-25 09:13:56             🧑  作者: Mango

JavaScript handler.construct()方法

handler.construct()方法用于拦截新操作。此方法返回一个对象。

句法

construct: function(target, argumentsList, newTarget)

参量

目标:目标对象。

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);

输出:

Constructor called Proxi