我是一名正在学习 Javascript (Node.js) 的 Java 开发人员。
这是我尝试运行的第一段代码:
var sys = require("sys"),
my_http = require("http");
my_http.createServer(function(request,response){
response.writeHeader(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
}).listen(8080);
如果没有文档,我怎么知道 createServer 采用一个以请求和响应作为参数的函数?我问这个问题是因为我想让自己为即将开始面临的所有未记录的代码做好准备。这是 createServer 函数的源代码:
function createServer(options) {
var bunyan = require('./bunyan_helper');
var InternalError = require('./errors').InternalError;
var Router = require('./router');
var Server = require('./server');
var opts = shallowCopy(options || {});
var server;
opts.name = opts.name || 'restify';
opts.log = opts.log || bunyan.createLogger(opts.name);
opts.router = opts.router || new Router(opts);
server = new Server(opts);
server.on('uncaughtException', function (req, res, route, e) {
if (this.listeners('uncaughtException').length > 1 ||
res._headerSent) {
return (false);
}
res.send(new InternalError(e, e.message || 'unexpected error'));
return (true);
});
return (server);
}
我知道 Javascript 是一种动态类型语言,但想知道人们如何在不知道类型的情况下调试或理解彼此的代码。
最佳答案
JavaScript 的好处是它是解释性的,这意味着您始终可以访问实际的源代码本身。对于 Node,您可以查看 node_modules/blah
来阅读源代码,但是 npm 上的绝大多数内容也在 github 上开源,您也可以在那里阅读源代码。
在浏览器中,如果您遇到缩小的代码,开发人员工具有一个自动格式化按钮,但在 Node 中通常不需要它,因为代码是未缩小的发布的。
也就是说,有些事情有很好的文档记录,有时文档是错误的或过时的,有时阅读源代码既不快速也不简单。但是,如果某些东西对你来说确实有问题,并且没有文档记录且难以阅读,你可以而且应该切换到 npm 上的其他东西,因为“没有人有时间这样做”。
关于javascript - Javascript中如何确定函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28555234/