如何理解Node.js官方文档中方法参数的语法表示规则
Node.js 官方文档参数语法规则说明
这是Node.js官方文档统一使用的可选参数标记规范,各符号含义如下:
- 被
`[]`包裹的内容代表可选参数,调用方法时可传可不传 - 可选参数前的逗号
,是参数分隔符标记:代表如果你要使用当前这个可选参数,需要用逗号和它前面的参数做分隔
示例1:http.createServer([options][, requestListener])
这个写法对应的4种合法调用方式:
- 无参数调用:
http.createServer() - 仅传配置项参数:
http.createServer({ keepAlive: true }) - 仅传请求监听函数:
http.createServer((req, res) => res.end('响应内容')) - 同时传两个参数:
http.createServer({ keepAlive: true }, (req, res) => res.end('响应内容'))
你疑惑的requestListener前的逗号,就是标记这个参数和前一个options参数的分隔规则:不管你有没有传options,只要你要传requestListener,就需要加逗号分隔。因为Node.js的方法内置了参数类型判断,会自动识别你传入的第一个参数是配置对象还是监听函数,不需要你手动传undefined占位。
示例2:http.request(url[, options][, callback])
这是http.request方法的其中一个重载形式(另一个重载支持直接把配置对象作为第一个参数,省略url),对应的合法调用方式:
- 仅传请求地址:
http.request('https://example.com') - 传请求地址+配置项:
http.request('https://example.com', { method: 'POST' }) - 传请求地址+响应回调:
http.request('https://example.com', (res) => console.log(res.statusCode)) - 同时传三个参数:
http.request('https://example.com', { method: 'POST' }, (res) => console.log(res.statusCode))
规则和第一个示例一致,options和callback都是可选参数,只要你传后面的参数,就要用逗号和前面的参数分隔即可。
内容的提问来源于stack exchange,提问作者bugsyb
相关产品推荐
相关产品推荐

