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

    proxy,暂时理解还不是很清晰,可以暂时理解为生命周期的钩子函数,在触发某种操作的时候预先执行

    声明Proxy

    new Proxy({},{});//里面带有两个参数,第一个是执行的方法体,第二个是Proxy处理的区域,也就是我们去写钩子函数的地方
    

    下面的例子的变量应该是proxy啊,尴尬!!!不过不影响最后的结果 !!!

    基本demo:

    let promise = new Proxy(
        {name:'cyany'},
        {
    	get:(target,key)=>{
            if(key in target){
    			console.log('do get method normal');
                return target[key]
            }else{
    			console.log('not the property');
             }
        }
       }	
    );
    
    promise.name
    
    promise.height
    


    分析上面结构:
    Proxy的里面有一个get属性,该属性是一个匿名方法,可以接受两个属性,第一个是target,第二个是key,相当于是对象的属性
    in,可以判断该属性是否存在于该目标中,返回Boolean

    get:(target,key)=>{
            if(key in target){
    			console.log('do get method normal');
                return target[key]
            }else{
    			console.log('not the property');
             }
    

    还有一个set,属性,也是一个匿名函数,接受四个参数,target目标值,key属性,value值,oldValue之前的值

    let promise1 = new Proxy({
    	name:'bluesky'
    },{
    	get:(target,key)=>{
    		console.log('come in the get method');
    		return target[key];
       },
    	set:(target,key,value,oldValue)=>{
    		console.log('come in the set method');
    		console.log(target,key,value,oldValue);
    		return target[key]=value;
       }
    });
    
    promise1.set('height',186)
    

  • 相关阅读:
    Python数据库 4.Python与数据库的交互
    Python数据库 3.MongoDB(区分大小写)
    Python数据库2.Redis数据库
    Python数据库1. 数据库简介
    Python基础 12.常用模块
    Python基础 11.Vim使用
    Python基础 10.linux基本命令
    栈理解
    java集合Collection
    斐波那契函数
  • 原文地址:https://www.cnblogs.com/cyany/p/9253771.html
Copyright © 2011-2022 走看看