zoukankan      html  css  js  c++  java
  • ES6-Proxy,代理

    proxy 代理 Es6 增强 对象和函数(方法)
     
    Proxy用于修改某些操作的默认行为,即对编程语言层面进行修改,属于“元编程”,
    Proxy意思为“代理”,即在访问对象之前建立一道“拦截”,任何访问该对象的操作之
    前都会通过这道“拦截”,即执行Proxy里面定义的方法。
     
     
    声明 Proxy 第一个大括号放对象体 第二个放预处理机制    get set apply
    let pro  = new Proxy({
        //方法体
        add:function(val){
            return val+100;
        },
        name:'ananiah'
    },{
        //预处理机制 get set apply
        //get 得到属性前预处理
        get:function(target,key,property){
            console.log(target); //{add: ƒ, name: "ananiah"}
            console.log(key); //name
            return target[key]
        },
        set:function(target,key,value,receiver){
            console.log(`setting ${key} = ${value}`); //setting name = 代理
    
            //返回之后打印出来的才会改变
            return target[key] = value + '123';
        }
    });
    console.log(pro.name);
    pro.name='代理';
    console.log(pro.name);  //name 代理123
    
    //apply
    let target = function(){
         return  'ananiah';
    }
    let handler = {
        apply(target,ctx,args){
            console.log('apply start');
            return Reflect.apply(...arguments); //apply start
        }
    };
    let proxx = new Proxy(target,handler);
    //调用
    console.log(proxx()) //ananiah
     
  • 相关阅读:
    WEB测试方法(二)
    WEB测试方法(一)
    JSP技术(六)
    JSP技术(七)
    JSP技术(四)
    JSP技术(三)
    JSP技术(五)
    JavaScript语言和jQuery技术(四)
    单元测试的四个阶段
    什么是集成测试
  • 原文地址:https://www.cnblogs.com/Ananiah/p/11073690.html
Copyright © 2011-2022 走看看