题解 | #双向绑定# 好题

双向绑定

https://www.nowcoder.com/practice/d1452ec52a134b328f23b97c02b230bd


      var ul = document.querySelector("ul");
      var person = {
        sex: "男",
        age: "25",
        name: "王大锤",
        height: 28,
        weight: 32,
      };
      var inp = document.querySelector("input");
      inp.value = person.weight;
      const _render = () => {
        var str = `<li>姓名:<span>${person.name}</span></li>
                           <li>性别:<span>${person.sex}</span></li>
                           <li>年龄:<span>${person.age}</span></li>
                           <li>身高:<span>${person.height}</span></li>
                           <li>体重:<span>${person.weight}</span></li>`;
        ul.innerHTML = str;
        inp.value = person.weight;
      };
      _render(ul);
      // 补全代码
      //根据input的value重新给属性赋值
      inp.oninput = function () {
        person.weight = this.value;
      };


     //定义对象的属性重新赋值时进行的操作
      //   handler里面不能定义变量,所以定义的变量要放在外面
      Object.keys(person).forEach((key) => {
        let value = person[key];
        Object.defineProperty(person, key, {
          get() {
            return value;
          },
          set(newVal) {
            value = newVal;
            _render();
          },
        });
      });
    </script>



全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 14:35
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务