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 条评论
登录 后参与评论

相关文章

来自专栏落花落雨不落叶

canvas画简单电路图

62011
来自专栏闻道于事

js登录滑动验证,不滑动无法登陆

js的判断这里是根据滑块的位置进行判断,应该是用一个flag判断 <%@ page language="java" contentType="text/html...

6848
来自专栏张善友的专栏

Mix 10 上的asp.net mvc 2的相关Session

Beyond File | New Company: From Cheesy Sample to Social Platform Scott Hansel...

2577
来自专栏我和未来有约会

Kit 3D 更新

Kit3D is a 3D graphics engine written for Microsoft Silverlight. Kit3D was inita...

2536
来自专栏张善友的专栏

Miguel de Icaza 细说 Mix 07大会上的Silverlight和DLR

Mono之父Miguel de Icaza 详细报道微软Mix 07大会上的Silverlight和DLR ,上面还谈到了Mono and Silverligh...

2717
来自专栏一个会写诗的程序员的博客

Spring Reactor 项目核心库Reactor Core

Non-Blocking Reactive Streams Foundation for the JVM both implementing a Reactiv...

2182
来自专栏魂祭心

原 canvas绘制clock

4094
来自专栏C#

DotNet加密方式解析--非对称加密

    新年新气象,也希望新年可以挣大钱。不管今年年底会不会跟去年一样,满怀抱负却又壮志未酬。(不过没事,我已为各位卜上一卦,卦象显示各位都能挣钱...)...

4888
来自专栏转载gongluck的CSDN博客

cocos2dx 打灰机

#include "GamePlane.h" #include "PlaneSprite.h" #include "BulletNode.h" #include...

5476
来自专栏张善友的专栏

LINQ via C# 系列文章

LINQ via C# Recently I am giving a series of talk on LINQ. the name “LINQ via C...

2645

扫码关注云+社区