client.on('message', function(obj){});
这样可以正常工作,但我试图避免嵌套,所以我把回调函数拿出来就像这样:
client.on('message', doThis(obj));
function doThis(obj) {}
但这给我一个错误,说obj未定义。
如何将消息数据传递给回调函数?
由于
答案 0 :(得分:3)
client.on('message', doThis);
function doThis(obj) {}
f(doThis)
是正确的语法。 f(doThis(arg))
语法错误。
后者使用参数doThis
立即调用arg
(目前尚不存在)。
这就是为什么obj
未定义,因为您立即调用了doThis
。
f(doThis)
所做的是传递函数而不是函数的返回值