码迷,mamicode.com
首页 > 编程语言 > 详细

javascript,如何实现数据绑定

时间:2017-12-12 21:43:08      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:objects   https   init   doc   blog   var   div   prot   代码量   

在三大框架 抢占前端开发技术领域的时代,基本每个框架都是实现了数据绑定,

今天我们来解密一下数据绑定的原理,

原理关乎一个很关键的东西,Object.prototype.__defineSetter和Object.prototype.__defineGetter

MDN地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__

 

现在我就实现一个函数,把一个对象上的某个值,和dom元素的innerHTML绑定在一起。

function bind(ele,obj,key){
    var index={
        init:function(){
            //检查是否有初始值,有的话就复制
            if (key in obj) {
                ele.innerHTML=obj[key]
            }
            this.bind()
        },
        bind:function(){
            obj.__defineSetter__(key,function(v){
                ele.innerHTML=v
            })
            obj.__defineGetter__(key,function(){
                return ele.innerHTML
            })
        },
        _do:function(){}
    }
    index.init()
}

  不过这个函数有个缺点,只可以把一个值绑定到一个元素的innerHTML上,一个元素可以绑定多个值,但是没办法一个值绑定多个dom元素的属性,不过加以修改就可以实现了,实现的话代码量就会很长,在这里就只能抛砖引玉了。

javascript,如何实现数据绑定

标签:objects   https   init   doc   blog   var   div   prot   代码量   

原文地址:http://www.cnblogs.com/wl843022618/p/8028464.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!