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)
    

      

  • 相关阅读:
    「ROI 2019 Day1」运输 20/19
    「ROI 2018 Day 2」无进位加法
    「ROI 2018 Day 1」量子隐形传态
    「ROI 2018 Day 2」快速排序
    「ROI 2018 Day 1」Innophone (分块+斜率优化)
    「ROI 2017 Day 1」虎 (计算几何)
    [BJ United Round #3] 押韵 [学习笔记]
    「CEOI2020」象棋世界
    CF1375G
    CF1392(div1+div2)
  • 原文地址:https://www.cnblogs.com/xiaomingBlog/p/8818425.html
Copyright © 2011-2022 走看看