setTimeout在匿名函数里面

Pas*_*yer 1 javascript anonymous-function settimeout

我想在我的jQuery函数中调用editObject(),初始化调用确实有效,但是setTimeout不起作用,如何让它运行?控制台说setTimeout调用时没有定义editObject:

(function($){
    $.fn.extend({

                    ...

                    editObject()

            function editObject() {
                alert("Test!");
                setTimeout('editObject()', 1000);
            }

            return this.each(function() {
                var o = options;
            });
        }
    });
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

感谢帮助!

kpr*_*vas 8

它不起作用,因为editObject()是在匿名函数的范围内声明的,但是setTimeout()会破坏您在全局上下文中传递它的字符串.试试这个:

setTimeout(editObject, 1000);
Run Code Online (Sandbox Code Playgroud)


JCO*_*611 5

你可以试试这个:

setTimeout(function(){ editObject.call() }, 1000);
Run Code Online (Sandbox Code Playgroud)

要么:

setTimeout(arguments.callee, 1000);
Run Code Online (Sandbox Code Playgroud)