html:
<input type="text" id="username">
<br>
显示值: <span id="uName"></span>
script:
let obj = {}
Object.defineProperty(obj, "username", { // obj是侦听的对象 username是侦听的属性
get: function() {
console.log("取值")
},
set: function(val) {
console.log("设置值")
document.getElementById("uName").innerText = val
}
})
// input 监听键盘弹起事件 获取到的值赋值给obj.username, 上面Object.defineProperty侦听到了obj里面的username的值发生了改变, 就会执行set方法
document.getElementById("username").addEventListener("keyup", function() {
obj.username = event.target.value
})