Javascript中的可选参数如何工作?

时间:2016-08-12 21:41:42

标签: javascript function

取自w3在线教程:

$("button").click(function(){
    $("#div1").load("demo_test.txt", function(responseTxt, statusTxt, xhr){
        if(statusTxt == "success")
            alert("External content loaded successfully!");
        if(statusTxt == "error")
            alert("Error: " + xhr.status + ": " + xhr.statusText);
    });
});

函数调用如何知道哪些参数正在传递,比如说你只传入statusTxtxhr,或者你只想传入xhr

请放轻松我们:)这是我的第一个问题

1 个答案:

答案 0 :(得分:1)

简单地说,它没有,因为它从你的功能调用中分配从左到右传递的每个参数。让我们说你有这个功能,复制自你:

function someFunction(responseTxt, statusTxt, xhr){
    if(statusTxt == "success")
        alert("External content loaded successfully!");
    if(statusTxt == "error")
        alert("Error: " + xhr.status + ": " + xhr.statusText);
}

并且您希望传递变量值 statusTxt :"成功"当你调用这个函数时, xhr :your_xhr。如果你这样调用函数:

  

someFunction("成功",your_xhr);

这意味着"成功"将被分配给参数 responseTxt ,并且your_xhr将分配到 statusTxt

通常,您可以将responseTxt设置为 null 并将其余部分设置为您想要的内容,例如:

  

someFunction(null," success",your_xhr);

或在函数定义中使用对象文字。这是一个例子:

function someFunction(options){
    if(options.statusTxt == "success")
        alert("External content loaded successfully!");
    if(options.statusTxt == "error")
        alert("Error: " + options.xhr.status + ": " + options.xhr.statusText);
}

并且您的函数调用如下所示:

  

someFunction({statusTxt:"成功",xhr:your_xhr});

当然,您需要检查responseTxt是否 未定义 ,以防您不使用它。

希望这会有所帮助。