如何在Chrome开发者工具中按函数名查找复杂对象内的方法?
结论
Chrome调试工具不支持你想要的console.find(myApp, "myFunctionName")这类内置功能——没法直接传入一个对象,按函数名去查找它包含的方法。
补充说明
- 你碰到的
Uncaught SyntaxError: The requested module './lib/pixi/pixi.mjs' does not provide an export named 'getCanvasBoundingBox'错误,说明这个函数确实没被模块对外导出,哪怕它在模块内部存在,也没法通过常规导入或者调试工具的筛选框直接定位到。 - 调试工具自带的筛选框只能对已经显示出来的属性/方法列表做过滤,不能主动遍历对象的所有层级去搜索目标函数。
如果需要类似功能,你可以自己写个遍历对象的脚本,比如这样的实现:
function findMethod(targetObj, methodName) { let matchedMethod = null; function traverse(obj) { if (!obj || typeof obj !== 'object') return; if (obj.hasOwnProperty(methodName) && typeof obj[methodName] === 'function') { matchedMethod = obj[methodName]; return; } Object.values(obj).forEach(val => traverse(val)); if (matchedMethod) return; } traverse(targetObj); return matchedMethod; }
重要提示:此问题并非重复问题,正确答案是“不支持”,不应被关闭。
内容的提问来源于stack exchange,提问作者1.21 gigawatts
相关产品推荐
相关产品推荐

