在此代码中:
function obj1(data){
var self = this;
this.val = ko.observable(data);
this.update = function(newData){
self.val(newData);
};
}
var o1 = new obj1("init");
ko.applyBindings(o1);
console.debug("o1", o1, o1.val()); //First log
o1.update("updated");
console.debug("o1", o1, o1.val());
在第一个日志行中,当我在o1的chrome val中查看控制台时,已被“更新”,但o1.val()为“ init”,这是正确的值,因为在该行中,我尚未调用o1.update函数。 SEE THIS IMAGE
http://jsfiddle.net/a2xortyu/8/
问题:有人可以解释为什么在调用更新函数之前更新o1吗?