未捕获的TypeError:对象不是函数
我决定让我的writeMessage()函数匿名;当它同时创建另一个writeMessage()函数实例时会一直搞乱,导致文本输出混乱(两个消息都被“写入”放在一起混合)。
但是,我已经看到遇到错误(如上所示)。 变量object
是一个jQuery对象(例如:$('#myDivElement'))。
为什么会这样?感谢。
function writeMessage(message,object){
(function(message,object,i){
var self = this;
setTimeout(function(){
if(i < message.length){
object.append(message.substr(i,1));
i++;
self(message,object,i);
}
}, 25);
}(message,object,0));
}
答案 0 :(得分:4)
var self = this;
由于您在没有上下文的情况下调用该函数,self
引用了window
对象。 window
是一个对象(window.toString
应该提供类似[object Window]
的内容而不是函数),因此self(message,object,i)
无法正常运行。
相反,请使用:
var self = arguments.callee;