命名匿名函数
是否有可能以某种方式为匿名函数设置名称?命名匿名函数
没有必要为匿名函数的名称空间添加函数名称,但我想避免在我的javascript调试器中看到大量(?),所以我可以保持调用堆栈跟踪信息丰富。
也可以安全地传递正常的声明函数作为参数,而不是匿名函数,否则我会走入一些奇怪的错误。它似乎工作。
$("object").bind("click", function() { alert("x"); });
$("object").bind("click", function debuggingName() { alert("x"); });
[编辑]
我意味着什么沿着
$("object").bind("click", function() { Function.Name = "debuggingName"; alert("x"); });
你的第二个例子是使用命名的函数表达式,这适用于大多数的浏览器不错,但在IE浏览器的一些问题,你应该知道使用它之前。我推荐阅读kangax's excellent article on this subject。 。
喜欢匿名函数是没有名字的功能,它是从它的定义在那里执行。或者,您可以在使用它之前定义调试功能。
function debuggingName() {
alert("x");
}
$("object").bind("click", debuggingName);
我通常做: $( “对象”)绑定( “点击” ,函数名(){ 警报( “X”); });
并且不会遇到任何问题。
这样做是鼓励在一些主要的库:
https://groups.google.com/forum/m/#!topic/firebug/MgnlqZ1bzX8
http://blog.getfirebug.com/2011/04/28/naming-anonymous-javascript-functions/
如果动态函数名称的问题。在How to dynamically set a function/object name in Javascript as it is displayed in Chrome
我刚刚在http://stackoverflow.com/questions/5871040/how-to-dynamically-set-a-function-object-name-in-javascript-as-it-is-上看到了一个更好的解决方案,显示-i – 2015-11-17 13:31:27
永远不要这样做。这是愚蠢而冗长的。 – 2016-11-11 19:26:39
@Raynos内特费雷罗 - 一个名为匿名函数是一种自相矛盾的说法!!:你可以试试这个:
源 – InSane 2010-10-04 10:00:31
当你使用上面的第二个构造时,是否会出现一些错误? – 2010-10-04 10:00:52
我只是想设置一个匿名函数中的东西,调试器可以拿起并显示为一个有用的调试函数名称。我想完全按照我使用匿名函数的方式来使用它们。 – Raynos 2010-10-04 10:27:54