Javascript 淘汰:XXX不是一个函数错误
我正在学习Knockout.js并使用Javascript 淘汰:XXX不是一个函数错误,javascript,knockout.js,Javascript,Knockout.js,我正在学习Knockout.js并使用with:binding更改绑定上下文,如下所示: HTML: 单击图像时,出现以下错误: 未捕获类型错误:this.currentCat不是函数 相同的代码在不使用和绑定的情况下工作。有人能解释一下我改变了背景后发生了什么变化吗 当用作事件处理程序时,此会释放其上下文。使用.bind this.incrementCounter = function() { this.currentCat().count(this.currentCat().coun
with:binding
更改绑定上下文,如下所示:
HTML:
单击图像时,出现以下错误:
未捕获类型错误:this.currentCat不是函数
相同的代码在不使用
和绑定的情况下工作。有人能解释一下我改变了背景后发生了什么变化吗 当用作事件处理程序时,此
会释放其上下文。使用.bind
this.incrementCounter = function() {
this.currentCat().count(this.currentCat().count() + 1);
}.bind(this);
当用作事件处理程序时,此
会释放其上下文。使用.bind
this.incrementCounter = function() {
this.currentCat().count(this.currentCat().count() + 1);
}.bind(this);
哇,这解决了问题。谢谢你,先生。你能详细解释一下你所说的“当用作事件处理程序时,它会失去上下文”是什么意思,以及绑定是如何解决这个问题的吗?@akshayKhot谢谢你的链接。在将与
一起使用之前,我进行了数据绑定=单击:incrementCounter
和相同的JS(不带绑定)。那一次成功了。为什么用
使它失败?哇,这解决了问题。谢谢你,先生。你能详细解释一下你所说的“当用作事件处理程序时,它会失去上下文”是什么意思,以及绑定是如何解决这个问题的吗?@akshayKhot谢谢你的链接。在将与
一起使用之前,我有数据绑定=“click:incrementCounter
和没有绑定的同一个JS。当时它工作正常。为什么与
一起使用会失败?
this.incrementCounter = function() {
this.currentCat().count(this.currentCat().count() + 1);
}.bind(this);