node怎么打印完整的函数?
发布于 6 年前 作者 Borkes 8093 次浏览 来自 问答

node打印对象的方法有console, util.inspect, JSON.stringify,而且可以完整的打印;

JSON.stringify(obj, null, 1);  //JSON.stringify(value[, replacer[, space]])

第二参数用null,不用替换,第三个参数格式打印缩进或替代缩进的方式

但是,有没有可以完整打印函数的方法?比如很简单一个函数:

let a = function () {
    let b = 1;
    let c = 0;
    return b + c;
}

我想完整打印出来里面,显示代码

用console.log() 或者util.inspect()打印: [Function: a] 用JSON.stringif()打印是 undefined

8 回复

node中js部分的方法,你a.toString()就可以了,c++部分的没法直接打印吧。

@soda-wy 谢谢了,是想打印js部分的方法,测试的时候一直在前面加上了123,结果打印的是字符串,没有格式化,去掉了就好了。

console.log(123, a.toString());

123 'function () {\r\n let b = 1;\r\n let c = 0;\r\n return b + c;\r\n}'

function () {
    let b = 1;
    let c = 0;
    return b + c;
}

a.toString()String(a)

直接打印只显示function。。。你需要把它转化为字符串

我想你要的是console.log(‘123%s’, a.toString());

@steambap 都是可行的,不过不能用于打印完整对象上

@AnzerWall 对,这么处理可以打印出来有显示缩进

@fruit-memory function可以这么处理,深层对象不能直接转字符串,会显示object

回到顶部