![](/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.