js最简单的双向绑定实例讲解


Posted in Javascript onJanuary 02, 2018

把代码复制放到页面里面运行看一下效果就好了

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<input type="text" id="myinput" >
<script>
  function watch(obj,key,callback) {
    var old = obj[key];
    Object.defineProperty(obj,key,{
      set:function(val){
        var oldVal = old;
        old = val;
        callback(val,oldVal,this);
      },
      get:function(){
        return old;
      }
    });
  }
  var input = document.getElementById("myinput");
  var obj = {};
  watch(obj, "input",function (val) {
    input.value = val;
    console.log("这里是不管view层,还是module层修改后的回调,最后设置的值是"+val);
  });
  input.onkeyup = function () {
    obj.input = input.value;
  };
</script>
</body>
</html>

代码测试

修改了input内的值,会看到控制台打印出新的值

在控制台修改obj.input的值,input框内的值也会跟着改变,也会触发事件,获取新值

以上这篇js最简单的双向绑定实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
网页中的图片的处理方法与代码
Nov 26 Javascript
javascript中的一些注意事项 更新中
Dec 06 Javascript
js动态加载以及确定加载完成的代码
Jul 31 Javascript
jQuery使用ajaxSubmit()提交表单示例
Apr 04 Javascript
jquery实现对联广告的方法
Feb 05 Javascript
Vue 过渡实现轮播图效果
Mar 27 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
Node.js使用Express.Router的方法
Nov 14 Javascript
详解webpack3编译兼容IE8的正确姿势
Dec 21 Javascript
js判断文件类型大小并给出提示的实现方法
Jan 03 Javascript
微信小程序button标签open-type属性原理解析
Jan 21 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
Dec 04 Javascript
js 将canvas生成图片保存,或直接保存一张图片的实现方法
Jan 02 #Javascript
js原生方法被覆盖,从新赋值原生的方法
Jan 02 #Javascript
JS实现验证码倒计时的注册页面
Jan 02 #Javascript
使用socket.io实现简单聊天室案例
Jan 02 #Javascript
使用socket.io制做简易WEB聊天室
Jan 02 #Javascript
AngularJS实现的简单拖拽功能示例
Jan 02 #Javascript
AngularJS实现的锚点楼层跳转功能示例
Jan 02 #Javascript
You might like
木翼下载系统中说明的PHP安全配置方法
2007/06/16 PHP
PHP 输出缓存详解
2009/06/20 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
浅谈webpack devtool里的7种SourceMap模式
2019/01/14 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
微信小程序npm引入vant-weapp的踩坑记录
2019/08/01 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
python实现绘制树枝简单示例
2014/07/24 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
python实现对任意大小图片均匀切割的示例
2018/12/05 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
html5 canvas-1.canvas介绍(hello canvas)
2013/01/07 HTML / CSS
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
中专毕业生自我鉴定范文
2013/11/09 职场文书
大学运动会入场词
2014/02/22 职场文书
感恩教育活动总结
2014/05/05 职场文书
物理教育专业求职信
2014/06/25 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
2015年毕业生自我鉴定模板
2014/09/19 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
Redis命令处理过程源码解析
2022/02/12 Redis
如何使用python包中的sched事件调度器
2022/04/30 Python