原生js实现双向数据绑定

js实现双向数据绑定

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        #foo {
            padding: 10px;
            background: #ccc;
            font-size: 30px;
        }
    </style>
</head>

<body>
    <div id="foo"></div>
    <script>
        function bindInput(obj, property, domElem) {
            Object.defineProperty(obj, property, {
                get() {
                    return domElem.innerHTML
                },
                set: function(newValue) {
                    domElem.innerHTML = newValue
                }
            })
        }
        var user = {}
        var domElem = document.getElementById('foo')
        bindInput(user, 'name', domElem)
        user.name = '小鱼儿'
        console.log(domElem.innerHTML)
        setTimeout(function() {
            domElem.innerHTML = '花无缺'
            console.log(user.name)
        }, 2000)
    </script>
</body>

</html>

猜你喜欢

转载自blog.csdn.net/qq_35425276/article/details/80111197