为了账号安全,请及时绑定邮箱和手机立即绑定

js用Object.defineProperty做双向数据绑定小问题

js用Object.defineProperty做双向数据绑定小问题

拉丁的传说 2018-10-02 13:41:18
我在网上看到的例子:<input type="text" id="text1" /> <input type="text" id="text2" /> var input1 = document.querySelector("#text1"); var input2 = document.querySelector("#text2"); var data = {}; Object.defineProperty(data, "name", {   configurable: true,   get: function(){       console.log(1111);      return input1.value   },   set: function(newValue){       console.log(222);     input1.value = newValue;     input2.value = newValue;   } })data.name = "sss"; input1.onchange = function(){   console.log(33333)  data.name = data.name; } input2.onchange = function(){   input1.value = this.value;   console.log(data); }当我改变input2的值的时候。input1的value会发生变化,这是必然的。但是这时候我打印data。data值竟然也更新了。input2.onchange里 并没有调用data的set啊。input1.value发生改变,也并没有触发input1的onchange啊。那 data的数据的更新,到底是怎么触发的啊?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 462 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号