Object.defineProperty 拦截器使用以及实现vue数据拦截

// Object.defineProperty  es5  vue

// 通过Object.defineProperty定义属性 可以增加拦截器

let obj = {}
let other = '';

Object.defineProperty(obj,'name',{
    enumerable:true,//设置是否可枚举
    configurable:true,//能不能删除这个属性
    get(){//读取方法
        console.log('--------');
        return other;
    },
    set(val){//设置方法
        other = val
    }


// })
obj.name=789
console.log(obj.name);



let obj = {
    other:'123',
    get name(){
        return this.other;
    },
    set name(val){
        this.other = val
    }
}
obj.name = '456'
console.log(obj.name);
// 对象的 setter和getter

// vue的数据劫持 (把所有属性都给成 get 和set方法)
function update(){
    console.log('更新视图');
}
let data = {
    name:'hj',
    age:90,
    adress:{
        location:'昌平'
    }
}
function observer(obj){
   
    if(typeof obj !=='object') return obj;
    for (let key in obj) {
        deineReactive(obj,key,obj[key])
    }
}
function deineReactive(obj,key,value){
    observer(value)
    Object.defineProperty(obj,key,{
        get(){
            return value
        },
        set(val){
            if(val!==value){
                observer(val)
                update()
                value = val
            }
           
        }
    })
}
observer(data);
data.age = 82;
data.adress = [1,2,3];

let methods = ['push','slice','pop','sort','reverse','unshift'];
methods.forEach(method=>{
    let oldMethod = Array.prototype[method];
    Array.prototype[method] = function(){
        update()
        oldMethod.call(this,...arguments)
    }
})
data.adress.push(4)

有客宝是北京有客宝科技有限公司针对客服推出的一款快捷回复软件。 有客宝不仅实现了客服的快捷回复功能,而且根据客服工作的需要,扩展了密码功能、表情功能和网址收藏功能 有客宝快捷回复软件,将使您的客服工作变得更加轻松便捷,真正实现了无需打字,轻做客服快速提高客服工作效率,提高成交率! 有客宝软件支持QQ、YY、旺旺、千牛、京咚、飞信、微信、易信、钉钉等各种常见IM软件的快捷回复功能!支持各种IM软件的表情互相发送! 有客宝产品团队致力于将最好的快捷回复软件呈现给用户,我们将不断改进和优化我们的产品。 有客宝快捷回复软件特色功能: 1、快捷消息 客服收到用户消息时,快速响应用户提问,让客服的工作更加轻松友好! 2、表情功能 软件支持常见IM软件的基本情,真正实现了一站式的表情管理和发送,各种软件表情相互发送! 3、网址功能 软件支持自定义网址收藏,网址支持不同的浏览器打开,使用更加方便! 4、密码功能 有客宝扩展改进密码管理,让用户管理密码,使用密码更加的轻松,便捷,高强度密码生成器,弱密码提示,多层密码加密,保证安全可靠 5、软件助手 支持各种常见的IM软件群发,客服营销更加轻松。 6、多功能粘贴板 自定义多功能快捷键,支持分组,支持快速切换,解决重复数据输入,让客服的工作更加轻松 7、数据备份 支持多版数据备份恢复,更换电脑,更换系统,快速恢复指定备份的数据 8、万能插件 根据客服工作的需求,可以自定义插件开发,实现软件功能更多,更强的扩展
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值