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 相关文章推荐
jQuery Autocomplete自动完成插件
Jul 17 Javascript
JavaScript中:表达式和语句的区别[译]
Sep 17 Javascript
关于JavaScript的面向对象和继承有利新手学习
Jan 11 Javascript
javascript中字符串拼接详解
Sep 26 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
Mar 03 Javascript
最精简的JavaScript实现鼠标拖动效果的方法
May 11 Javascript
探索angularjs+requirejs全面实现按需加载的套路
Feb 26 Javascript
微信小程序 登录的简单实现
Apr 19 Javascript
vue项目中使用fetch的实现方法
Apr 25 Javascript
Vue的路由及路由钩子函数的实现
Jul 02 Javascript
微信小程序报错: thirdScriptError的错误问题
Jun 19 Javascript
JavaScript this关键字的深入详解
Jan 14 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+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
基于php权限分配的实现代码
2013/04/28 PHP
解析PHP中的file_get_contents获取远程页面乱码的问题
2013/06/25 PHP
ThinkPHP模板引擎之导入资源文件方法详解
2014/06/18 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
jQuery模拟select实现下拉菜单功能
2016/06/20 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
js 作用域和变量详解
2017/02/16 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
vue ssr+koa2构建服务端渲染的示例代码
2020/03/23 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
Python中if __name__ == &quot;__main__&quot;详细解释
2014/10/21 Python
python3利用Dlib19.7实现人脸68个特征点标定
2018/02/26 Python
python3+PyQt5实现文档打印功能
2018/04/24 Python
python 修改本地网络配置的方法
2019/08/14 Python
python RSA加密的示例
2020/12/09 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
古驰英国官网:GUCCI英国
2020/03/07 全球购物
施工员岗位职责
2014/03/16 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python
一篇文章带你复习java知识点
2021/06/28 Java/Android
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技