JavaScript 匿名函数

发布于 2024-07-29 08:06:18 字数 1389 浏览 17 评论 0

函数声明

function x(){}

函数表达式

下面等号右侧的 function ... 部分就是一个函数表达式

var x=function...

// 比如
var a = function() {} // function() {} 是函数表达式,我们称其为匿名函数表达式

var b = function c() {} // function c() {} 也是表达式

函数定义

一个具有了名字的函数表达式就可以称为函数定义

匿名函数定义

所谓匿名函数定义,其本身是表述为:

aName = FunctionExpression

或类似于此的语法风格的。它可以用在

  • 一般的赋值表达式
var x
x=function(){}
  • 变量声明的右操作数
var x=function(){}
  • 以及对象声明的成员初始值
let obj={
	x:function(){}
}

在这些位置上,该函数表达式总是被关联给一个名字。一方面,这种关联不是严格意义上的“名字 -> 值”的绑定语义;另一方面,当该函数关联给名字(aName)时,JavaScript 又会反向地处理该函数(作为对象 f)的属性 f.name,使该名字指向 aName。

这种情况下,我们说这个匿名函数不是真正匿名的,因为我们其实能拿到这个函数的名字

var x=function(){}
console.log(x.name) // x


let obj={
	x:function(){}
}
console.log(x.name) // x

所谓匿名函数,仅仅是当它直接作为操作数(而不是具有上述“匿名函数定义”的语法结构)时,才是真正匿名的,我们拿不到它的名字,例如

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

export default function() {}

export default function() {}并不是导出了一个匿名函数表达式,而是导出了一个匿名函数定义

我还不懂上面这句话。准确的说,我理解后半句而是导出了一个匿名函数定义,不明白前半句 并不是导出了一个匿名函数表达式

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

文章
评论
29 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文