码迷,mamicode.com
首页 > 其他好文 > 详细

proxy和reflect

时间:2017-10-03 13:10:45      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:get   cep   通用   class   logs   也有   对象   color   val   

1.proxy

用来拦截在一个对象上的指定操,如:

var engineer = { name: ‘Joe Sixpack‘, salary: 50 };

var interceptor = {
  //不仅仅有set方法,还有get...等通用的方法
  set: function (receiver, property, value) {
        console.log(property, ‘is changed to‘, value);
        receiver[property] = value;
   }
};

engineer = new Proxy(engineer, interceptor);
engineer.salary = 60; //salary is changed to 60

 也可以应用在多继承:

var foo = {
    foo: function () {
        console.log("foo")
    }
};
var bar = {
    bar: function () {
        console.log("bar")
    }
};

var sonOfFooBar = new Proxy({}, {
    get: function (target, name) {
        console.log("target=",target);
        return target[name] || foo[name] || bar[name];
    }
})
sonOfFooBar.foo();   //"foo",有foo方法,继承自对象foo
sonOfFooBar.bar();   //"bar",也有bar方法,继承自对象bar

 

proxy和reflect

标签:get   cep   通用   class   logs   也有   对象   color   val   

原文地址:http://www.cnblogs.com/liuyinlei/p/7623585.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!