为什么JavaScript方法的参数有时候感觉很随意?

因为工作重点不在js 这一块,遇到js 的时候也就百度一下就够用了。最近有时间在研究node.js ,发现有的地方的同一个方法参数竟然可有可无,顺序貌似也随意就非常纳闷。


nodejs 举例子:

pool.getConnection(function(err, connection) {

// 获取参数 

var param = req.query || req.params; 

// 建立连接 增加一个

connection.query(insertSQL, [param.name,param.order],


function(err, result) { 

        if(result) {

            result = { code: 200, msg:'增加成功' }; 

        } 

        responseJSON(res, result); 

        // 释放连接 

        connection.release(); 

});

}); 

connection 这里明明是三个参数: sql语句, sql绑定的参数, 查询回调方法


为啥还可以直接connection.query(insertSQL, function(err, result){}) 这样少了一个参数使用呢?对于php、Java。。。语言来说,缺省参数没有默认值不是应该也要给个空值占位的吗?为啥JavaScript就可以直接不要那个参数了???


qq_笑_17
浏览 397回答 1
1回答

眼眸繁星

js允许你定义函数的时候定义n个,调用函数的时候传小于或等于n个参数,不会报错。其它语言中可能不允许这样做。像楼主这样的,定义了三个参数,使用的时候传一三,直接跳过第二个参数的情况,是因为它的函数内部会通过判断参数类型来确定你传的是哪个参数。比如nodejs中很多参数是(data,option,callback)这种的形式的,但使用的时候可能很多时候不参数传option参数,于是就直接变成(data,callback)了。参数内部会判断第二个参数是不是函数,如果是的话,就把option设为默认值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript