Google Chrome中的匿名函数表达式

时间:2016-09-01 10:33:27

标签: javascript google-chrome anonymous-function function-expression

我正在使用Google Chrome 52版64位。 我发现如果我使用匿名函数表达式。

//  Anonymous function expression 
var expressionFunc = function(){
    return true;
};

变量expressionFunc将保存指定的匿名函数, 但它也为此函数添加了名称属性expressionFunc。 所以,如果我在控制台中expressionFunc.name, 它会给我expressionFunc

据我所知,这个匿名函数表达式应保持匿名, 并且变量引用的函数不应该包含函数的name属性中的变量名。

为什么chrome将名称属性分配给匿名函数?

1 个答案:

答案 0 :(得分:0)

此页:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Function/name

说这个

  

实现ES6功能的浏览器可以推断出一个名称   匿名函数从其句法位置。例如:

var f = function() {};
console.log(f.name); // "f"

该页面上没有特别说明。

此页

http://www.2ality.com/2015/09/function-names-es6.html

说这个

  

关于名称,箭头函数就像匿名函数   表达式:

     const func = () => {};
     console.log(func.name); // func
  

从现在开始,无论何时看到匿名函数表达式,都可以   可以假设箭头功能以相同的方式工作。

https://stackoverflow.com/a/37488652/1048572的答案(由@bergi引用)非常全面,并指出了规范中的来源。