分享技术 defineProperty demo

codetyphon
85阅读20 评论2016-02-10 23:42:56

最近研究一下vue的双向绑定,自己动手写了一个,主要用到的是defineProperty。

不过总感觉好像哪里不太对劲。

html

<h1 id="name">hello</h1>
<input id="input_name" oninput="change(this)" />

javascript

var Data = {};
Object.defineProperty(Data, "name", {
    set: function(value) {
        name = value;
        document.getElementById("name").innerText = value;
        document.getElementById("input_name").setAttribute("value", value);
    },
    get: function() {
        return name;
    }
});


function change(e) {
    console.log(e.value);
    Data.name = e.value;
}

Data.name = "tom";

demo

社区声明
  • 社区旨在推动自由工作方式在国内渐进式发展
  • 区别于传统方式的工作职位,将会被优先推荐
  • 真诚且有趣有用的内容分享,在这里更受欢迎
  • 我们希望这里将是互联网创意工作者的聚集区
加入组织