On Tue, Sep 15, 2009 at 1:27 AM, Andrea Giammarchi <
[email protected]> wrote:
>
> @Michael Geary, it seems you never have to debug your code, do you? It is a
> good practice to name functions 'cause thousands of "anonymous" error are
> quite meaningless. My example is a de-facto behavior, with named functions.
>
Of course I have to debug my code! :-)
It never bothers me to have anonymous functions on the call stack, since I
can just click on them and see the the source code.
But if you like seeing function names in the call stack, you can do that *
and* write code with correct portable syntax. You simply used a named
function expression.
Here my two previous examples updated for pretty call stacks:
var slice = (function($slice){
try {
$slice.call(document.childNodes);
var slice = function *slice*(list){ return
$slice.call(list);
};
} catch(e) {
slice = function *slice*(){ for(var r = [], i = 0,
length = list.length; i < length; ++i)
r[i] = list[i]
;
return r;
};
};
return slice;
})(Array.prototype.slice);
Or:
var slice = (function($slice){
try {
$slice.call(document.childNodes);
return function *slice*(list){ return $slice.call(list);
};
} catch(e) {}
return function *slice*(){ for(var r = [], i = 0, length =
list.length; i < length; ++i)
r[i] = list[i]
;
return r;
};
})(Array.prototype.slice);
In both examples, we've added names to the various *slice* functions, but
the functions are still function expressions which are parsed the same in
all browsers.
-Mike
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---