繁体   English   中英

Javascript:var myFunc = function()与var myFunc = function myFunc()

[英]Javascript: var myFunc = function() vs. var myFunc = function myFunc()

这些有什么区别?

var myFunc = function() {
  // ...
};

var myFunc = function myFunc() {
  // ...
};

在第二个示例中, arguments.callee.caller.name有效,但在第一个示例中无效。 第二语法有什么问题吗?

第二个有一个名字,第一个没有。 函数是具有属性name对象。 如果函数是匿名的,则没有名称。

var a = function(){}; // anonymous function expression
a.name; //= empty

var a = function foo(){}; // named function expression
a.name; //= foo

函数文字中的name是可选的,如果省略(如在第一种情况下所示),则该函数被称为匿名

这来自于Douglas Crockford的JavaScript:The Good Parts

函数文字包含四个部分。 第一部分是保留字功能 可选的第二部分是函数的名称。 该函数可以使用其名称进行递归调用。 调试器和开发工具也可以使用该名称来标识该功能。 如前一个示例所示,如果未给函数指定名称,则称其为匿名

第一个函数没有名字。

将函数分配给变量不会赋予函数名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM