<input type="text" id="userName"><br>
<span id="uName"></span>
<script>
var obj = {
pwd:'123456'
}
Object.defineProperty(obj,'userName',{
get:function(){
console.log('get init')
},
set:function(val){
console.log('set init')
document.getElementById('uName').innerText = val
}
})
document.getElementById('userName').addEventListener('keyup',function(event){
obj.userName = event.target.value
})
</script>
Object.defineProperty用于对象属性的扩展,结合原生dom操作,实现双线数据绑定。
- 取值会调用get
- 赋值会调用set