【问题标题】:Why are anonymous functions passed into variables? [duplicate]为什么将匿名函数传递给变量? [复制]
【发布时间】:2021-12-10 18:56:55
【问题描述】:

所以,我正在使用 freecodecamp,它说以下函数是匿名的:

const myFunc = () => {
  const myVar = "value";
  return myVar;
}

console.log(myFunc.name);

好吧,如果它的名字明明是“myFunc”,怎么会是匿名的呢?

【问题讨论】:

  • 命名变量的值是一个匿名函数。函数本身没有命名。它只是被变量引用
  • 那个函数是一个命名函数。 freecodecamp 不正确。请参阅this answerHow do I write a named arrow function in ES2015?
  • 看这里geeksforgeeks.org/javascript-anonymous-functions箭头函数总是匿名的。
  • @isherwood 该副本没有提及箭头函数,只是普通函数,并且更多地谈论 IIFE。
  • 很公平,但我不明白它是一个箭头函数这一事实有什么关系。这是一个分配给变量的函数。该副本很好地涵盖了这种情况。

标签: javascript


【解决方案1】:

您正在设置 myFunc 以引用匿名函数。 myFunc 有一个名字,它引用的匿名函数没有。

const myFunc = () => {
  const myVar = "value";
  return myVar;
}

// This returns myFunc name
console.log(myFunc.name);

// This returns anonymous function's name which is blank
console.log(
(() => {
  const myVar = "value";
  return myVar;
}).name
);

【讨论】:

  • 这是错误的。在 JS 中,您无法获取变量绑定的名称,绑定不是对象。函数对象确实有一个名称。下面的例子是一个不同的函数对象,它没有名字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 2019-12-14
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
相关资源
最近更新 更多