zoukankan      html  css  js  c++  java
  • es6 proxy、handler.get()

    Proxy 对象用于定义基本操作的自定义行为(例:属性查找)

    共13种可代理操作、每种操作的代号(属性名、方法名)和触发这种操作的方式列举如下。注意,如果没有定义某种操作,那么这种操作会被妆发到目标对象身上。

    参数traps 提供属性访问的方法,这类似于操作系统中陷阱的概念

    target 代理虚拟化的对象。他通常用作代理的存储后端。

    1.handel.get()在给代理对象的某个属性时触发该操作。

    2.handler.get 方法用于拦截对象的读取属性操作。

    3.以下情况会抛出错误a 如果要访问的目标舒心是不可写以及不可配置的,则返回的值必须与该目标属性的值相同

              b.如果要访问的目标属性没有配置访问方法,即get方法是undefined的,则返回值必须为undefined

    var obj = {
    			a:2,
    			b:1,
    		}
    		var p = new Proxy(obj,{
    
    			get:function(target,prop,receiver){
    				// console.log(this)//this是当前对象
    				// console.log(target)//taiget是当前被搜索的对象
    				// console.log(prop)//prop是对象被查找的key值
    				// receiver就是Proxy实例
    
    				if(prop in target){
    					return target[prop]
    				}else{
    					return '还未定义的值';
    				}
    			}
    		})
    		console.log(p.eee)
    

      

  • 相关阅读:
    牢骚
    【题解】LFYZNoip前水题赛 T6
    【模板】 ST表
    【模板】高精度。。。。。
    【模板】堆优化 + dij +pair 存储
    【模板】树状数组
    近两天目标
    当堆遇到STL 代码焕发光芒
    【模板】并查集
    【NOI2000】 单词查找树
  • 原文地址:https://www.cnblogs.com/xiaomingBlog/p/8818425.html
Copyright © 2011-2022 走看看