{"css":"","js":"","html":"<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <meta charset=\"UTF-8\">\n    </head>\n    <body>\n        <style>\n            ul {\n                list-style: none;\n            }\n        </style>\n        <input type=\"text\">\n        <ul></ul>\n\n        <script>\n            var ul = document.querySelector('ul');\n            var person = { sex: '男', age: '25', name: '王大锤', height: 28, weight: 32 };\n            var inp = document.querySelector('input');\n            inp.value = person.weight;\n            const _render = () => {\n                var str = `<li>姓名:<span>${person.name}</span></li>\n                           <li>性别:<span>${person.sex}</span></li>\n                           <li>年龄:<span>${person.age}</span></li>\n                           <li>身高:<span>${person.height}</span></li>\n                           <li>体重:<span>${person.weight}</span></li>`\n                ul.innerHTML = str;\n                inp.value = person.weight;\n            }\n            _render(ul);\n            // 补全代码\n            function observe(target) {\n                for(let key in target) {\n                    let value = target[key]\n                    Object.defineProperty(target,key, {\n                        get:function() {\n                            return value\n                        },\n                        set:function(newVal) {\n                            if(value !== newVal) {\n                                value = newVal\n                                _render()\n                            }\n                        }\n                    })\n                }\n            }\n            observe(person)\n            inp.oninput = function() {\n                person.weight = this.value\n            }\n        </script>\n    </body>\n</html>","libs":[]}