<body>
<h1 id="h1">
</h1>
<input type="text" id="input">
<button id="button">change</button>
<script>
var data = {
msg : "我是一个数据"
}
**页面上的初始化**
h1.innerText = data.msg
input.value = data.msg
Object.defineProperty(obj, prop, descriptor)
参数申明:
1. obj:目的对象
2. prop 需定义或修正的属性的名字
3. descriptor 目的属性所具有的特征
数据挟制 , 这个api可以对一个对象的属性举行准确的掌握
掌握这个属性可以被赋值 可以被重写 可否被猎取
掌握这个属性的读取 或许 写入
get/set
**get 猎取值 或许叫 读取**
**set 设置值 或许叫 赋值**
Object.defineProperty(data,"msg",{
get(){
**当我猎取msg的值的时刻 我愿望猎取到的是什么效果呢?**
return input.value
},
set(newValue){
**当我给msg属性赋值的时刻 我愿望做一些事变**
**data.msg ="咳咳"**
**由于要模仿双向数据绑定 那末获得的新的值 input与h1中的内容也要跟新的值一致**
**实际上在vue的底层这一步是经由过程观察者 / 定阅者形式完成**
h1.innerText = newValue;
input.value = newValue
}
})
button.onclick = function(){
data.msg += 1
}
input.onkeyup = function(){
**当键盘抬起的时刻 我们让 data.msg 猎取新的值 也就是对data.msg 从新赋值**
data.msg = input.value
console.log(data.msg)
}
</script>
</body>