JavaScript-JavaScript报错,TypeError: this._setPara is not a function
以下是一段获取元素位置,并通过判断index值,使其向左或向右运动的代码局部。在运行过程中报错,this._setPara is not a funtion...百思不得其解,请各位指教~多谢~
_setPara : function(){
this._b = this.swContainer.css("left");
this._move();
},
moveLeft : function(){
this._setPara();
this.index++;
if(this.index == this.swCounter){
setTimeout(this.moveRight, this.swDuration);
}else{
setTimeout(this.moveLeft, this.swDuration);
}
},
moveRight : function(){
this._setPara();
this.index--;
if(this.index == 0){
setTimeout(this.moveLeft, this.swDuration);
}else{
setTimeout(this.moveRight, this.swDuration);
}
},
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
其实很简单就是一个 this 作用域的问题,新的标准规范里面有这个处理了,要是不考虑不支持 ES5 标准的浏览器的话,一般使用 bind,如下:
当然你可以全局添加一个 hank.js,让一些低版本的浏览器支持 Function.bind 这个方法,其实有很多都是需要兼容做的,比如低版本的浏览器的 String.trim Array.indexOf 等等:
已经知道原因: 放入setTimeout内部的函数,this会指向window,而不再是原对象。
解决方法: var _self = this;