题解 | #双向绑定#

双向绑定

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

function defineProperty(person, key, val) {
  Object.defineProperty(person, key, {
    get: function () {
      return val
    },
    set: function (newVal) {
      if (val !== newVal) {
        val = newVal;
        _render(ul);
      };
    }
  })
}

for (let key in person) {
  defineProperty(person, key, person[key])
}

inp.oninput = function () {
  person.weight = inp.value
}

此处最需要注意的是直接使用Object.defineproperty设置监听对象是get()的栈溢出问题,使用闭包处理一下即可

ps:严格来说还需要判断下person的是否为对象,此处没作处理

全部评论

相关推荐

码农索隆:这种hr,建议全中国推广
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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