CNode

node怎么打印完整的函数?

问答
BBorkes发布于9 年前最后回复9 年前8 回复9487 浏览0 收藏

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)

S
sodawy#1·9 年前

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

B
Borkes#2·9 年前
引用 sodawynode中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;
}
S
steambap#3·9 年前

a.toString()String(a)

F
fruit-memory#4·9 年前

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

A
AnzerWall#5·9 年前

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

B
Borkes#6·9 年前
引用 steambapa.toString() 或 String(a)

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

B
Borkes#7·9 年前
引用 AnzerWall我想你要的是console.log('123%s', a.toString());

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

B
Borkes#8·9 年前
引用 fruit-memory直接打印只显示function。。。你需要把它转化为字符串

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

参与回复
登录后即可参与回复。登录