Chrome开发者工具调用栈中的"anonymous"究竟指什么?
Chrome调试调用栈中"anonymous"标识的含义
当你在Chrome调试器的调用栈里看到anonymous,它就是指没有被显式命名的函数,常见的几种场景:
- 匿名函数表达式:直接作为回调、赋值给变量但没给名字的函数,比如:
// 定时器回调的匿名函数 setTimeout(function() { console.log('hello'); }, 1000); // 事件监听的匿名回调 document.querySelector('button').addEventListener('click', function() { // 点击逻辑 }); - 立即执行匿名函数(IIFE):那种定义完直接执行的自包裹函数:
(function() { // 页面初始化逻辑 })(); - 无法推断名称的箭头函数:箭头函数本身没有自带名称,如果它没有赋值给具名变量,直接作为参数传递,调试器没法推断名称时就会显示
anonymous:[1,2,3].forEach(item => { console.log(item); }); - 动态生成的函数:比如用
Function构造器创建的函数,默认没有名称,也会显示anonymous:const add = new Function('x', 'y', 'return x + y');
还有一种情况是代码被压缩混淆后,原本的函数名被工具替换掉,也会在调用栈里显示anonymous。
内容的提问来源于stack exchange,提问作者Kenneth Kent
相关产品推荐
相关产品推荐

