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
     
  • 相关阅读:
    JNI和NDK的关系
    JNI和NDK的关系
    Android SDK结构分析
    设计模式:单例模式
    编程规范:占位符
    设计模式:工厂模式
    代码整洁之道----读书笔记
    个人编程规范
    装饰器函数
    异常处理
  • 原文地址:https://www.cnblogs.com/Ananiah/p/11073690.html
Copyright © 2011-2022 走看看