JavaScript如何分配函数的“名称"属性? [英] How JavaScript assigns `name` attribute of function?

查看:42
本文介绍了JavaScript如何分配函数的“名称"属性?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在JavaScript中,当我定义这样的函数时

In JavaScript, when I define function like this

function aaa(){}

稍后我可以通过 name 属性访问名称:

I can later access the name by name attribute:

aaa.name

这将返回

"aaa"

但是,当我通过 var 定义函数时,从技术上讲,它应该是没有 name 属性的匿名函数:

However, when I define function via var, it technically should be anonymous function without name attribute:

var aaa = function(){}

但是相反,它假定 aaa 是函数名,并将其分配给 name 属性:

But instead it assumes that aaa is function name and assigns it to name attribute:

aaa.name

也将返回

"aaa"

JavaScript如何确定名称应该是什么,尤其是考虑到分配可能使用更复杂的场景这一事实:

How JavaScript decides what should be the name, especially considering the fact that assignments could use more complicated scenarios:

var aaa = bbb = function(){} 或者 var aaa = arr [0] = function(){}

?

推荐答案

类似以下内容:

推断的函数名称

变量和方法可以从中推断出匿名函数的名称其句法位置(ECMAScript 2015中的新功能).

Variables and methods can infer the name of an anonymous function from its syntactic position (new in ECMAScript 2015).

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

阅读整个博客.它将清除所有查询.

Read the entire blog. It will clear all your queries.

这篇关于JavaScript如何分配函数的“名称"属性?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆