![](/img/trans.png)
[英]What is the different between var myFunc = new Object(function myFunc () {}) and 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.