console.log没有参数? 这个怎么用?

可能是一个非常基本的问题,但我还没有find在文档或谷歌的答案…

我正在做nodeschool的 “learnyounode”模块,而对于http客户端问题的介绍发现了一个正式的答案,使用console.log没有参数(事实上作为args在另一个函数,但我明白):

 var http = require('http') http.get(process.argv[2], function (response) { response.setEncoding('utf8') response.on('data', console.log) response.on('error', console.error) }) 

这个怎么用? 它看起来干净明显,但我不确定如果没有更好的理解发生了什么,我可以放心地使用这种风格。


顺便说一句,比较(看看我不理解),这是我自己非常相似,但更长的回答:

 var http = require('http'); http.get(process.argv[2], function callback(response) { response.setEncoding('utf8'); response.on('data', function(data) { console.log(data); }); response.on('error', function(error) { console.error(error); }); }); 

这很简单,看你的代码

 response.on('error', function(error) { console.error(error); }); 

你在那里做了什么,你写了一个callback,从错误事件中传递了对象,你可以用它作为错误。

现在让我们看看其他代码

 response.on('error', console.error) 

同样的事情发生了事件传递它的对象是callback函数,这是console.error这里需要一个或多个对象。

所以像

 let myLog = function(dataToLog) { console.log(dataToLog); } response.on('error', myLog); 

也会工作,希望这使得它更清晰一点。