关键点: 1.之前没有单独定义监听函数的时候

//直接绑定,会产生循环引用,发生爆栈。
//没有深刻理解到
Object.keys(person).map(item => {
	Object.defineProperty(person, item, {
    	get: function(){
        	return person[item];
        },
        set: function(value){
        	if(value !== person[item]){
            	person[item] = value;
            }
        }
    })	
})
Object.keys(person).map(item => {
    observeObj(person, item, person[item]);
})
function observeObj(obj, key, value) {
    Object.defineProperty(obj, key, {
        get: function() {
            return value;
        },
        set: function(newValue) {
            console.log("value", value)
            if (newValue !== value) {
                value = newValue;
                _render(ul);
            }
        }
    })
}