I have a major problem with profiling in javascript with anonymous functions, I have always many anonymous functions – most of them are callbacks – and It makes analyzing results of profiler very hard for me.
Finally I decided to use named functions for callbacks, like this:
var f = function(callback) {
// Do something ...
callback();
}
f(function named_function() {
console.log('Sample callback function!');
});
I want to know that will I have any problems after making this change in my codes?
And will this type of function definition and passing reserve the name (named_function) anywhere?
The name will only be available inside the scope of the named function expression.
But there is a problem in IE 8 and lower. It will leak out to the outer scope, and will actually create a different function object, so you should nullify it if that’s a problem.
See this article for more information: Named function expressions demystified
Or you could create it like this to solve the IE issue.
But that’s a little ugly.