什么是;“匿名函数”;用Javascript是什么意思?
我在玩弄JS,我发现:什么是;“匿名函数”;用Javascript是什么意思?,javascript,function,Javascript,Function,我在玩弄JS,我发现: 有人想解释一下吗?匿名函数是一个没有名字的函数。它们不是特定于Javascript的,请参阅 对于JS,基本上不是这样: function myFunc() { } 你可以做: var myFunc = function() { } (function(){ alert("Hello World!") })(); 调用Function()函数(它是Function对象的构造函数)时,它会返回一个函数。以这种方式动态创建的函数没有名称,因此命名为“匿名” 请参阅:匿
有人想解释一下吗?匿名函数是一个没有名字的函数。它们不是特定于Javascript的,请参阅 对于JS,基本上不是这样:
function myFunc() { }
你可以做:
var myFunc = function() { }
(function(){ alert("Hello World!") })();
调用
Function()
函数(它是Function
对象的构造函数)时,它会返回一个函数。以这种方式动态创建的函数没有名称,因此命名为“匿名”
请参阅:匿名函数是没有名称的函数。例如,您可以执行以下操作:
var myFunc = function() { }
(function(){ alert("Hello World!") })();
这将创建一个没有名称的函数并立即调用它。如果代码导致引发异常,JavaScript运行时将在匿名函数中报告失败
此外,函数本身就是名为Function
的类的对象。您可以使用此类定义如下所示的新函数(而不是内置语法):
这与写作基本相同:
(function(x, y) { return x + y })(1, 2);
这让您可以窥探JavaScript函数的面向对象特性。这是多个浏览器实现
函数的一个怪癖。prototype.toString
呈现通过函数
构造函数创建的函数,但它并不重要,也没有出现在任何版本的EcmaScript规范中
通常是一个命名函数
function anonymous(x) {
if (x) {
alert('hi');
} else {
anonymous(!x);
}
}
无论传入的值是多少,都将发出警报,因为函数名可用于递归调用(模IE bug),但通过新函数创建的匿名并非如此
(new Function('x', 'if (x) alert("hi"); else anonymous(!x);'))(false)
失败,出现错误。-1请再次查看该问题-您将看到该问题与函数匿名(){
从控制台-查看包含的屏幕截图操作。+1
-绑定到HTML元素的函数也是匿名的。例如,如果您有
,并在调试器下查看foo.onclick
,您将得到相同的结果。如果我执行函数('test')
,我将收到:函数匿名(){test}
。这仍然返回名为匿名的函数。
。最后一个参数是函数体,它前面的所有参数都是函数参数。您的参数“test”指定函数的代码体。没有(标准)在调试器中设置函数名的方法。Yea@Tadeck是正确的-函数的构造函数没有函数名的参数。它总是返回对匿名函数的引用。我不会说名称“anonymous”如果是,下面的代码不会给出引用错误…函数('alert(anonymous)')();
它以该名称显示,但该函数实际上没有名称。+1表示“这是一个怪癖…它不重要,并且在EcmaScript规范的任何版本中都不会出现”。Function();匿名();//引用错误