Proxy與Object.defineProperty簡單對比

申明變量對象

Object.defineProperty
var obj = {'name':'1111','id':'001'},news = null;
Object.defineProperty(obj,'obj',{
    get:function(){
        console.log('get')
        return news
    },
    set:function(val){
        console.log('來取值')
        news = val
    }
})
// 改變name值
obj.name = 121211
console.log(obj.name) // 輸出新的name

Proxy
var news = new Proxy(obj,{
    get(target,key){
        console.log(key,target,'get')
        return target[key]
    }
})
obj.name = 121211
console.log(obj) // 輸出 {name: 121211, id: 001}
相關文章
相關標籤/搜索