proxy思考

vue从2.5版本之后开始强化typescript的支持程度,在ide方面增强对visual stadio的支持,更重要的是,双数据绑定那一块,要使用es6的proxy来代替Object.defineProperty(),吓得我赶紧看了一下es6中的proxy,首先代码

let proxy=new Proxy({},{
    get:function (target,property) {
        return 35;
    }
})
let obj=Object.create(proxy);
console.log(obj.qq);
let person={
    name:"张三"
}
let proxyPerson=new Proxy(person,{
    get:function(target,property){
        if(property in target){
            return target[property];
        }else{
            console.log("Property \"" + property + "\" does not exist.");
        }
    }
})
console.log(proxyPerson.name);
console.log(proxyPerson.sex);

//经过实际操作,object.observe已经不能在浏览器里支持l
// var o = {};
// function observer(changes){
//     changes.forEach(function(change) {
//         console.log('发生变动的属性:' + change.name);
//         console.log('变动前的值:' + change.oldValue);
//         console.log('变动后的值:' + change.object[change.name]);
//         console.log('变动类型:' + change.type);
//     });
// }
// Object.observe(o, observer);
// o.sex="男";
//可以使用apply 对方法进行拦截代理
var target = function () { return 'I am the target'; }; var handler = {
    apply: function (receiver, ...args) { return 'I am the proxy';
    } };
var p = new Proxy(target, handler);
console.log(p());

上面的代码,可以使用proxy的get属性,set属性,监听对象的状态,使用apply来监听函数的状态,当然proxy还提供来取消监听的方法

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux系统运维

awk工具

19770
来自专栏我是攻城师

深入理解Java类加载器机制

Java里面的类加载机制,可以说是Java虚拟机核心组件之一,掌握和理解JVM虚拟机的架构,将有助于我们站在底层原理的角度上来理解Java语言,这也是为什么我们...

41220
来自专栏决胜机器学习

PHP实用功能——modern PHP读书笔记(一)

PHP实用功能——modern PHP读书笔记 (原创内容,转载请注明来源,谢谢) 一、命名空间 1、命名空间按照虚拟的层次结构组织PHP代码,类似操作系统的目...

45750
来自专栏积累沉淀

Python快速学习第十一天--Python多线程

Python中使用线程有三种方式: 方法一:函数式 调用thread模块中的start_new_thread()函数来产生新线程。语法如下: thread...

24590
来自专栏码洞

深度学习Java之内存模型【译】

Java的内存模型定义了Java虚拟机如何和计算机物理内存进行交互。Java虚拟机是一体化的计算机模型,所以它自然也包含了内存模型。

9810
来自专栏Java架构

解析一些java复杂面试题的简单操作

永生区空间不足(JVM规范中运行时数据区域中的方法区,在HotSpot虚拟机中又被习惯称为永生代或者永生区,Permanet Generation中存放的为一些...

9010
来自专栏栗霖积跬步之旅

java多线程编程核心技术——第二章总结

第一节synchronized同步方法目录 1.1方法内的变量为线程安全的 1.2实例变量非线程安全 1.3多个对象多个锁 1.4synch...

218100
来自专栏七夜安全博客

无线安全专题_破解篇03--打造个人字典

12840
来自专栏小工匠技术圈

【Java小工匠】JavaNIO-缓存区基础

  缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区。

11820
来自专栏屈定‘s Blog

Java学习记录--委派模型与类加载器

最近在读许令波的深入分析Java Web技术内幕一书,对于学习Java以来一直有的几个疑惑得到了解答,遂记录下来.

16570

扫码关注云+社区

领取腾讯云代金券