这篇文章将为大家详细讲解有关JavaScript 中匿名函数有什么用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的洮南网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
同样都是在运行时才能确定函数,为什么
b
是匿名函数?
IsAnonymousFunctionDefinition()
用来判断一个函数是否为匿名函数,但是这个函数只在规范中使用,通过 JS 代码并不能调用,很多 JS 引擎会在内部实现这个函数(非强制要求)。name
属性是 "anonymous"
name
是继承自
Function.prototype.name
,因此没有名字的函数的
name
属性是空字符
""
。
,也就是我们经常说的匿名函数。var a = () => () => { throw new Error('foo') }
a()()
,还是
var b = a(); b()
,在 Chrome 中执行:Global Scope
)b
函数,
a
都不应该出现在调用栈中,我觉得这应该可以算是 FireFox 的一个 bug 了。new Function
定义函数,错误栈里是没有尖括号的。因为根据规范,使用
Function
定义的函数是有名字的,名字就是
"anonymous"
。就好比一个人叫无名氏,并不是因为他没有名字,而是他姓无,叫名氏。var a = new Function('throw new Error("bar")')a()
var a = () => () => 1
的函数名是
a
,而
var b = a()
就是匿名函数。var a = () => 1
包含了 2 个阶段,箭头函数定义和赋值操作。所有的箭头函数都是匿名函数,在箭头函数的定义中,规范内部的
hasName
属性直接设置为了
false
。然后
IsAnonymousFunctionDefinition(expr)
判定此函数是匿名函数:IsFunctionDefinition
of expr
is false
, return false
.hasName
be HasName of expr.hasName
istrue
, returnfalse
.true
.var b = a()
。这个也包含了赋值操作,还有一个函数调用操作。var a = (1, () => 'foo')a = [() => 1][0]var a = eval('()=>1')
关于JavaScript 中匿名函数有什么用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。