我正在使用Google Chrome版本52 64位。 我發現,如果我使用匿名函數表達式ex。Google Chrome中的匿名函數表達式
// Anonymous function expression
var expressionFunc = function(){
return true;
};
變量expressionFunc
將持有指定的匿名函數, 但它也加入了名稱屬性expressionFunc
這個功能。 所以,如果我在控制檯expressionFunc.name
, 它會給我expressionFunc
。
從我所知道的這個匿名函數表達式應該保持匿名, 而變量引用的函數不應該在函數的name屬性中包含變量名稱。
爲什麼chrome將name屬性分配給一個匿名函數?
這是我的理解,你不是在這裏創建一個匿名函數,你只是用不同的語法聲明函數。很高興知道這個標準的人更加詳細一點。匿名函數更像(function(){alert(true);})(); –
Firefox中的行爲是不同的,這表明它並不清晰。 –
這被稱爲內聯匿名函數表達式。這個函數沒有名字,所以它是匿名內聯函數,賦值給變量使其成爲內聯匿名函數表達式 – RuvenGam