gpt4 book ai didi

javascript - 如何像 Firefox 打印函数一样打印 Node.js 中的函数(即给出名称)?

转载 作者:行者123 更新时间:2023-12-02 14:55:04 24 4
gpt4 key购买 nike

var fun1=function(){console.log('hello');}
var fun2=fun1
console.log(fun2);

上面的代码在 Firefox 中运行会打印 fun2。在 Chrome 中,它打印函数体,在 Node.js 中,它打印 Function

为什么会出现这种差异?

如何在 Node.js 中获取 Firefox 的行为?

我为什么问这个?

我问这个是因为我想调试从 Idris 生成的 JS 代码,其中 JS 运行时使用 explicit调用堆栈,我想以一种有意义的方式打印调用堆栈内容,而 Firefox 做得最好,但我想在 Node.js 上调试代码,因此我想让 Node.js 像 Firefox 一样打印函数,我怎样才能去做 ?

编辑:

典型的编译函数如下所示:

var _idris__123_io_95_bind2_125_ = function(oldbase){
var myoldbase = new i$POINTER();
i$valstack_top += 1;
i$ret = new i$CON(65646,[i$valstack[i$valstack_base],i$valstack[i$valstack_base + 1],i$valstack[i$valstack_base + 2],i$valstack[i$valstack_base + 3],i$valstack[i$valstack_base + 4],i$valstack[i$valstack_base + 5]],_idris__123_APPLY0_125_$65646,null);
i$valstack_top = i$valstack_base;
i$valstack_base = oldbase.addr;
}

所以这里有用的信息是变量名 _idris__123_io_95_bind2_125_ 本身,这是 Firefox 打印的内容,而不是 node.js 打印的内容>,这就是问题所在,Firfox 打印有用的信息,而 node.js 则不打印。

所以问题是,如何让 node.js 为上述函数打印 _idris__123_io_95_bind2_125_

编辑2:

不幸的是,尝试一些建议不起作用:

>cat deb.js
var fun1=function(){console.log('hello');}
var fun2=fun1
console.log(fun2);
console.log(fun2.name);
console.log(fun2.toString());
console.log(fun2+'');
>node deb.js
[Function]

function (){console.log('hello');}
function (){console.log('hello');}
>

最佳答案

您需要将其转换为字符串,试试这个:

console.log(fun2.toString());

关于javascript - 如何像 Firefox 打印函数一样打印 Node.js 中的函数(即给出名称)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35871022/

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