jq代理和es6的proxy代理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43414945/article/details/89601010
 <script>
    //  // jq的事件代理
           // jq的事件代理
           function Car(){
           this.name="兰博基尼";
           this.show=function(){
           console.log("好牛逼的车")
           }
           }
           var expensiveCar=new Car();
          // console.log(expensiveCar);

          // 事件代理的第一个参数为对象 第二个参数为对象的方法 以下两种方法都可以
          $.proxy(expensiveCar,"show")();//控制台打印 “好牛逼的车”
          $.proxy(expensiveCar.show(),expensiveCar);//控制台打印 “好牛逼的车”
          $.proxy(expensiveCar.show,expensiveCar)();//控制台打印 “好牛逼的车”
     
   // 事件代理的第一个参数为对象 第二个参数为对象的方法  以下两种方法都可以
   // $.proxy(expensiveCar,"show");//控制台打印 “好牛逼的车”
   // $.proxy(expensiveCar.show,expensiveCar);//控制台打印 “好牛逼的车”
       function Car(){
           console.log("我是测试代码")
           this.name="兰博基尼";
             $.proxy(this.show,this)();//控制台打印 “好牛逼的车”
          $.proxy(this,"show")();//控制台打印 “好牛逼的车”
         $.proxy(expensiveCar.show(),expensiveCar);//控制台打印 “好牛逼的车”
       }
       
      Car.prototype.show=function(){
        console.log("好牛逼的车");
        }
       var expensiveCar=new Car();
     
     
      
    es6的时间代理
    定义两个json对象
       var obj={
           a:1,
           b:2
       };
        
       var handler={
           //添加set方法
           set: function(target,key,value){
                    target[key]=value;
                   console.log("我在这里调用了set方法");
           },
           //添加get方法
           get: function(target,key){
               console.log("我在这里调用了get方法");
                  return target[key];
           },
           //添加has 方法
           has:function(target,key){
                console.log("我在这里调用了has方法");
                 return  key in target;
           }
       }
       var p=new Proxy(obj,handler);
       console.log(p);//此时p为代理的一个实例对象
       var m=p.a;//当获取a的属性值时 就会调用get方法
          p.a=20;//当设置a的值时,就会调用set方法
        "a"in p;//当a在p中进行迭代操作时,就会调用set方法

    </script>


猜你喜欢

转载自blog.csdn.net/weixin_43414945/article/details/89601010