For doing things like
setTimeout(function () {
...
setTimeout(arguments.callee, 100);
}, 100);
I need something like arguments.callee. I found information at javascript.info that arguments.callee is deprecated:
This property is deprecated by ECMA-262 in favor of named function
expressions and for better performance.
But what should be then used instead? Something like this?
setTimeout(function myhandler() {
...
setTimeout(myhandler, 100);
}, 100);
// has a big advantage that myhandler cannot be seen here!!!
// so it doesn't spoil namespace
BTW, is arguments.callee cross-browser compatible?
Yes, that’s what, theoretically, should be used. You’re right. However, it doesn’t work in some versions of Internet Explorer, as always. So be careful. You may need to fall back on
arguments.callee, or, rather, a simple:Which does work on IE.