美文网首页
Object.defineProperty的双向绑定机制

Object.defineProperty的双向绑定机制

作者: JacobMa1996 | 来源:发表于2018-04-18 16:27 被阅读0次
    一、深拷贝

    一个简单的实现

    let newObj = JSON.parse(JSON.stringify(obj))
    
    二、Object.defineProperty

    官方文档

    三、发布者/订阅者模式
    四、双向绑定

    一个简单的实现

        <div id="txt"></div>
    
        <script>
            let obj = {
                a: '123'
            }
    
            function observe(data) {
                for (let i in data) {
                    Object.defineProperty(data, i, {
                        enumerable: true,
                        configurable: false,
                        get: function () {
                            return val
                        },
                        set: function (newVal) {
                            console.log('changing...')
                            document.getElementById('txt').innerText = newVal
                            val = newVal
                        }
                    })
                }
            }
            window.onload = function () {
                observe(obj)
                obj.a = '456'
            }
        </script>
    

    相关文章

      网友评论

          本文标题:Object.defineProperty的双向绑定机制

          本文链接:https://www.haomeiwen.com/subject/ketbkftx.html