原生js实现数据单向绑定
2017-06-24 15:03
531 查看
Object.defineProperty()方法直接在对象上定义一个新属性,或修改对象上的现有属性,并返回该对象。
Object.defineProperty(obj, prop, descriptor)
参数
obj 定义属性的对象。
prop 要定义或修改的属性的名称。
descriptor 定义或修改属性的描述符。
返回值 传递给函数的对象。
注意:数据描述符和访问器描述符,不能同时存在(value,writable 和 get,set)
Object.defineProperty(obj, prop, descriptor)
参数
obj 定义属性的对象。
prop 要定义或修改的属性的名称。
descriptor 定义或修改属性的描述符。
返回值 传递给函数的对象。
注意:数据描述符和访问器描述符,不能同时存在(value,writable 和 get,set)
get:函数return将被用作属性的值。
set:该函数将仅接收参数赋值给该属性的新值。(在属性改变时调用)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <input type="text" id="aa"/>*<input type="text" id="cc"/> 9 <span id="bb">{{hello}}</span> 10 11 <script> 12 var obj = {}; 13 Object.defineProperty(obj,'hello',{ 14 enumerable: true, 15 configurable: true, 16 get: function() { return document.getElementById('aa').value; }, 17 set:function(val){ 18 document.getElementById('bb').innerHTML = val*obj.hello2; 19 } 20 }); 21 Object.defineProperty(obj,'hello2',{ 22 enumerable: true, 23 configurable: true, 24 get: function() { return document.getElementById('cc').value; }, 25 set:function(val){ 26 document.getElementById('bb').innerHTML = val*obj.hello; 27 } 28 }); 29 document.getElementById('aa').onkeyup = function(){ 30 obj.hello = this.value; 31 }; 32 document.getElementById('cc').onkeyup = function(){ 33 obj.hello2 = this.value; 34 }; 35 obj.hello = ""; 36 obj.hello2 = ""; 37 </script> 38 39 </body> 40 </html>
相关文章推荐
- 原生js 实现双向数据绑定
- js原生代码实现数据双向绑定
- 原生JS实现angular的双向数据绑定
- 使用原生js onkeyup+jQuery实现简单的双向数据绑定
- 用原生js实现数据双向绑定
- 原生js简单实现双向数据绑定原理
- JS原生数据双向绑定实现代码
- 原生js实现双向数据绑定
- Js原生 双向数据绑定
- 使用jQuery或者原生js实现鼠标滚动加载页面新数据
- vue.js数据绑定的方法(单向、双向和一次性绑定)
- vue.js利用defineProperty实现数据的双向绑定
- Vue.js实现双向数据绑定(表单自动赋值、表单自动取值)
- 实现非常简单的js双向数据绑定
- Vue.js+Layer表格数据绑定与实现更新
- Vue.js+Layer表格数据绑定与实现更新
- JS原生数据双向绑定
- 使用jQuery或者原生js实现鼠标滚动加载页面新数据
- jquery.tmpl.min.js--前端实现模版--数据绑定--详解
- Vue.js+Layer表格数据绑定与实现更新