Proxy代理construct方法

介绍

construct方法用于拦截new命令,
construct方法可以接受两个参数:
target:目标对象,
args:构造函数的参数对象
newTarget:创造实例对象时,new命令作用的构造函数

语法

 {
            var handler= {
                construct(target,args,newTarget){
                    return new target(...args);
                }
            };
    }

demo1

{
            var p = new Proxy(function(){},{
                construct:function(target,args){
                    console.log('called:'+args.join(','));// "called: 1"
                    return {value:args[0]*10}
                }
            });
            console.log((new p(1).value));//10
        }

demo2 construct方法返回的必须是一个对象,否则会报错。

{
            var  p = new Proxy(function(){},{
                construct:function(target,argumentsList) {
                    return {value:1};
                }
            });
            console.log(new p());
            //Uncaught TypeError: 'construct' on proxy: trap returned non-object ('1')
        }

你可能感兴趣的:(proxy代理,ES6)