js实现双向数据绑定
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
#foo {
padding: 10px;
background: #ccc;
font-size: 30px;
}
</style>
</head>
<body>
<div id="foo"></div>
<script>
function bindInput(obj, property, domElem) {
Object.defineProperty(obj, property, {
get() {
return domElem.innerHTML
},
set: function(newValue) {
domElem.innerHTML = newValue
}
})
}
var user = {}
var domElem = document.getElementById('foo')
bindInput(user, 'name', domElem)
user.name = '小鱼儿'
console.log(domElem.innerHTML)
setTimeout(function() {
domElem.innerHTML = '花无缺'
console.log(user.name)
}, 2000)
</script>
</body>
</html>