zoukankan      html  css  js  c++  java
  • es6-proxy

    proxy :代理
    增强 扩展
    一个 Proxy 对象由两个部分组成: target 、 handler 。
    在通过 Proxy 构造函数生成实例对象时,需要提供这两个参数。
    target 即目标对象, handler 是一个对象,声明了代理 target 的指定行为。
    handler:{
    set(){} 设置
    get(){} 获取
    deleteProperty(){} 删除
    has(){} //有没有
    apply() //调用函数
    }
    例子1:
    let target = {
        name: "Tom",
        age: 24
      };
      let handler = {
        get: function(target, key) {
          console.log("getting " + key);
          return target[key]; // 不是target.key
        },
        set: function(target, key, value) {
          console.log("setting " + key);
          console.log(target[key])
          target[key] = value;
        }
      };
      let proxy = new Proxy(target, handler);
      proxy.name; // 实际执行 handler.get
      console.log(proxy.age)
      proxy.age = 25; // 实际执行 handler.set

    例子2:创建元素

    //拦截
        const DOM=new Proxy({},{
            get(target,property){
                console.log(property)
                return function(attr={},...children){
                    const el=document.createElement(property)
                    for(let key of Object.keys(attr)){
                        el.setAttribute(key,attr[key])
                    }
                    for(let child of children){
                        if(typeof child=='string'){
                            child=document.createTextNode(child)
                        }
                        el.appendChild(child)
                    }
                    return el;
                }
            }
        })
       let oDiv=DOM.div({id:'div1',class:'aaa'},'我是Div','呵呵',DOM.a({href:'http://baidu'},'百度'))
       console.log(oDiv)
     
    ♪♫♬ 梦想我想不只是拿来实现的,它可以提醒我们,我们可以努力,我们可以变更好。
  • 相关阅读:
    Eclipse配置Maven详细教程
    Spring MVC 搭建web项目示例
    C# Action 和Func
    C# params 用法简介
    WPF绘图性能问题
    C# EventWaitHandle用法
    C#5.0 异步编程async/await用法
    通过Struts2Web应用框架深入理解MVC
    Java过滤器—Filter用法简介
    WPF内嵌CEF控件,与JS交互
  • 原文地址:https://www.cnblogs.com/yanloveyue/p/11286839.html
Copyright © 2011-2022 走看看