javascript,函数中省略参数,不影响函数

标签 javascript

我在javascript中看到很多有3个参数的函数,例如第二个参数是一个值,第三个参数是一个函数,当你省略第二个参数时,并像第二个参数一样发送第三个参数(函数);没有错误。它是如何运作的? 在某些情况下,第二个和第三个参数是函数,那么这样做吗?这背后的架构是什么?

示例:

完整 3 个参数:

client.query('SELECT $1::int AS number', ['1'], function(err, result) {

2个参数:

client.query('SELECT  * from accounts', function(err, result) 

3 个参数,第二个参数为 null:

client.query('SELECT  * from accounts', null, function(err, result) 

最佳答案

ES2015之前有这样的方式:

function foo(param1, param2, param3){
    if(!param2){
        param2 = standard_value;
    }
    if(!param3){
        param3 = standard_value;
    }
    if(typeof param2 === "function"){
        param3 = param2;
    }
    // do stuff
}

使用 ES2015 你可以使用这个:

function foo(param1, param2 = standard_value, param3 = standard_value){
    if(typeof param2 === "function"){
        param3 = param2;
    }
    // do stuff
}

关于javascript,函数中省略参数,不影响函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40840202/

相关文章:

javascript - 解析为带 2 个小数位的 float

javascript - HTML:iframe 沙箱替代品

javascript - 对 Angular 模块使用单个全局变量是反模式吗?

javascript - 使 Canvas 动画异步

javascript - AngularJs:ng-repeat 未使用服务列表进行更新

Javascript 获取选定值返回 'undefined'

php - 使用 XMLhttpRequest 加载的页面上的复选框

javascript - Knockout.js 'enable' 绑定(bind)在IE8中隐藏按钮元素

javascript - 通过 JavaScript 的魔棒工具

javascript - JavaScript 算术问题