gpt4 book ai didi

Chrome 中的 Javascript 调试 - 对象名称?

转载 作者:行者123 更新时间:2023-11-30 12:40:28 24 4
gpt4 key购买 nike

不知道“下图中圈出的东西”叫什么让我的问题很难找到答案。

我在下图中圈出的东西叫什么名字?实际上是 (myObject.myFunction) 是无关紧要的。我希望能够将其写到控制台。我尝试了以下方法:

console.log(sp);  // -- outputs the text that is the actual function (e.g. 'function(config){ ... }'
console.log(sp.constructor); // -- outputs 'function Function(){ [native code] }'
console.log(sp.constructor.name); // -- outputs 'Function'


谢谢,
戴夫。

What am I!

编辑 - 为了尝试澄清问题,我删除了旧图像(其中对象与 ExtJS 有关),并替换为上面的图像。

我不想记录 te 函数是什么,或者它包含什么“属性”(如果我们像类一样使用它)- 我只想要我用红色圈出的文本。

最佳答案

myObject.myFunction 只是 Chrome 分配给该函数的名称。它实际上不是该函数的名称;根据定义,匿名函数没有名称:

console.log(fooFunc.name) //"fooFunc"
console.log(foo.name); //""
console.log(myObject.myFunction.name) //""

但是,函数具有人类可读的名称是有帮助的,即使该函数是匿名的,因此,当创建匿名函数时,Google Chrome 会跟踪该函数分配给的属性并将其存储为名称该功能的。

您还会看到该名称显示在堆栈跟踪中。如果您在 myObject.myFunction 中抛出一个错误,并查看堆栈跟踪,它看起来像这样:

Error
at myObject.myFunction (<anonymous>:2:41)
at <anonymous>:2:6
at Object.InjectedScript._evaluateOn (<anonymous>:704:39)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:643:52)
at Object.InjectedScript.evaluate (<anonymous>:557:21)

关键是,这确实不是 javascript 本身的特性,而是 Chrome 实现 javascript 的方式的特性。 (虽然如果其他浏览器不做类似的事情我会感到惊讶)

关于Chrome 中的 Javascript 调试 - 对象名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24658510/

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