vue实现双向数据绑定是通过Object.defineProperty()方法来实现劫持的
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。
Object.defineProperty()方法有三个参数:
参数 功能/作用
obj 要修改或定义key值的对象
key 对应obj对象的里面某有已有或要修改的属性
options 这个参数对象里面有get,set两个函数,用来定义属性值
let Obj = {} =>
let demo = document.getElementById("demo")
let ipt= document.getElementById("ipt")
Object.defineProperty(Obj, "text", {
configurable: true,
enumerable: true,
set: function (val) {
ipt.value = val
demo.innerHTML = val
console.log("input里面输入了" + val)
},
get: function () {
return Obj
}
})