[JavaScript]Proxy

697 ワード

ES 6のProxyは、オブジェクトの基本操作として、ユーザー定義の行動を設定するために使用されます.例えば、属性検索、賦課、列挙、関数呼び出しなどです.
例えば、プロキシオブジェクトの属性読みだし
var handler = {
    get: function(target, name){
        return name in target?
            target[name] :
            37;
    }
};

var p = new Proxy({}, handler);
p.a = 1;
p.b = undefined;

console.log(p.a, p.b); // 1, undefined
console.log('c' in p, p.c); // false, 37
例えば、プロキシ関数の呼び出しと構成
var f=function(){
    alert(1);
};

var p=new Proxy(f,{
    apply:function(){
        alert(2);    //2
        f();    //1
    },
    construct:function(){
        alert(3);    //3
        f();    //1
    }
});

p();    //2    1
new p;    //3    1