gpt4 book ai didi

Javascript:对象中的函数根据声明语法自动命名(或不命名)——为什么?

转载 作者:数据小太阳 更新时间:2023-10-29 04:51:55 26 4
gpt4 key购买 nike

<分区>

我没有遇到问题,也没有尝试解决任何问题。我很好奇为什么 Javascript 会这样工作。我在谷歌上四处寻找,但是“js function no name”得到了很多关于如何定义和使用匿名函数的点击(不是我正在寻找的)。而且几乎没有关于使用引起我困惑的语法声明函数的任何内容——我什至不知道该语法叫什么。

问题:我试图弄清楚为什么当函数位于对象内部时,声明语法对函数名称有任何影响。如果我像这样声明一个带有函数的对象:

var objectOne = { apple: function() {} }

apple() 函数获得了一个名称。也就是说,console.log(objectOne.apple.name) 显示“apple”。

但是如果我像这样声明一个内部有函数的对象:

var objectTwo = {}
objectTwo.banana = function() {}

然后 banana() 没有得到一个名字。也就是说,console.log(objectTwo.banana.name) 什么都不显示。对于以下和类似的排列相同。

var objectThree = { catapult: null }
objectThree.catapult = function() {}

当然,我可以明确地命名函数,但同样,我并不是要修复任何问题,我只是想知道为什么这两种语法会产生不同的结果。我一直认为它们在功能上可以互换。

我注意到这两种形式(不在对象内部)都会自动获取名称:

  function one() {}
var two = function() {}

为什么 object.property = function(){} 形式与其他形式的处理方式不同?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com