Object.defineProperty()
<input id="myinput" type="text" />
<div id="mytxt"></div>
<script>
let data={content:''}
document.getElementById("myinput").addEventListener("input",function(){
data.content = this.value;
document.getElementById("mytxt").innerHTML = this.value;
});
let toValue = {
get() {
//返回经过处理后的变量
return value;
},
set(newValue) {
//属性发生变化
value = newValue
document.getElementById("myinput").value = newValue
document.getElementById("mytxt").innerHTML = newValue
}
}
Object.defineProperty(data,'content',toValue);
</script>
new Proxy()
<input id="myinput" type="text" />
<div id="mytxt"></div>
<script>
let toValue = {
get(obj, prop, value) {
return value
},
set(obj, prop, value) {
//console.log(obj, prop, value);
//属性发生变化
obj[prop] = value;
document.getElementById("myinput").value = value
document.getElementById("mytxt").innerHTML = value
}
}
let data=new Proxy({content:''},toValue);
document.getElementById("myinput").addEventListener("input",function(){
data.content = this.value;
document.getElementById("mytxt").innerHTML = this.value;
});
</script>