Object.definejProperty有以下缺點悠鞍、
1.無法監(jiān)聽es6的Set咖祭、Map變化
2.無法監(jiān)聽Class類型的數(shù)據(jù);
3.屬性的新家或刪除也無法監(jiān)聽
4.數(shù)組元素的增加和刪除也無法監(jiān)聽
針對Object.defineProperty的缺點么翰,
ES6的Proxy都能夠完美得解決辽旋,就是對IE不友好,所以vue3在檢測到如果是使用IE的情況下(沒錯,支持Proxy)戴已,會自動降級為Object.defineProperty的數(shù)據(jù)監(jiān)聽系統(tǒng)
var obox = document.getElementById("box")
var obj = {}
// obj.name ="kerwin"
Object.defineProperty(obj,"myname",{
get(){
console.log("被訪問")
},
set(data){
console.log("被修改",data)
obox.innerHTML = data
}
})