//html
<input type="text" id="inputTxt" />
//js
window.onload =()=>{
let obj = {};
let value = 111; //**使用value该字段进行代理,
//否则在Object.defineProperty内之间使用obj的value属性会造成死循环
let inputTxt = document.getElementById("inputTxt");
Object.defineProperty(obj, 'value', {
get(){
console.log('get====')
return value;
},
set(val){
console.log('set-=====',val);
inputTxt.value = val;
value = val;
}
})
//1、数据赋值,更改页面的显示内容
obj.value = "5555" //数据赋值
//2、页面内容变更,更改数据值
inputTxt.addEventListener("keyup",(e)=>{
obj.value = e.target.value;
console.log('====', obj)
})
}