Javascript 击倒自我&;这个关键字是gotach
如果可能,请解释。第二个Javascript 击倒自我&;这个关键字是gotach,javascript,knockout.js,Javascript,Knockout.js,如果可能,请解释。第二个此无效,因为您更改了此有效的上下文。。。第二个此仅对设置超时函数内的属性有效 这将有助于: var model = function() { //var self = this; this.loading = ko.observable(true); setTimeout(function() { this.loading(false); }, 4000); } ko
此
无效,因为您更改了此
有效的上下文。。。第二个此
仅对设置超时
函数内的属性有效
这将有助于:
var model = function() {
//var self = this;
this.loading = ko.observable(true);
setTimeout(function() {
this.loading(false);
}, 4000);
}
ko.applyBindings(new model());
我建议您阅读以下内容:
在setTimeout中,“this”上下文是窗口的对象。 其中,这个setTimeout的外部站点属于模型类构造函数。 因此,您必须使用:
var model = function() {
var self = this;
self.loading = ko.observable(true);
setTimeout(function() {
self.loading(false);
}, 4000);
}
ko.applyBindings(new model());
然后在setTimeout中使用self而不是这个。也可能是的副本,并且
console.log()
是您的朋友!为什么在我试图回答您的问题时,您创建了一个新问题:
var model = function() {
var self = this;
self.loading = ko.observable(true);
setTimeout(function() {
self.loading(false);
}, 4000);
}
ko.applyBindings(new model());
var self = this;