javascript - 在 JavaScript 中使用可选参数

标签 javascript optional-parameters

我创建了一个这样的函数:

window.SetUploader = function(action, elementID, multiple, allowedExtensions) {
    //Optional arguments
    if (actionUploader == null) {
      actionUploader = "/Upload";
    }
    if (elementIDUploader == null) {
      elementIDUploader = "file-uploader";
    }
    if (multipleUploader == null) {
      multipleUploader = false;
    }
    if (allowedExtensions == null) {
      allowedExtensions = [];
    }

    //Function
     .....
};

要调用此函数,请使用以下代码:

SetUploader('/Projects/ImageUpload', 'Logo', { allowedExtensions: ['jpg', 'jpeg', 'png', 'gif', 'zip'] });

请注意参数allowedExtensions,它不会更改值。

调试功能,allowedExtensions值为null

出了什么问题?

最佳答案

您将实际的 allowedExtendsions 参数作为第三个参数传递,这是 multiple 形式参数出现的地方。将 undefined 放在它前面。

SetUploader(
   /* action */    '/Projects/ImageUpload', 
   /* elementId */ 'Logo', 
   // NEED VALUE FOR MULTIPLE HERE
   ['jpg', 'jpeg', 'png', 'gif', 'zip'])

您也永远不会使用 action 参数,而是检查和设置全局变量 actionUploader

通常,当允许可选参数时,您有一个特定的参数,它是额外参数的映射。

function (requiredParam, anotherRequiredParam, extra) {
  var optionalParam = extra ? extra.optionalParamName : defaultValue;
  ...
}

关于javascript - 在 JavaScript 中使用可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095051/

相关文章:

c# - 在 XML 文档中使用 <see cref =""/> 和可选的可为空参数

c# - 无法使用可选参数推断泛型类型

clojure - 如何转发可选参数

java - 在运行时传递可选的未知参数

javascript - 同一个 Electron 窗口中的两个浏览器

javascript - 如何检测是window.location.reload还是location.href被调用?

c# - OptionalAttribute 参数的默认值?

javascript - 如何只接受来 self 自己的应用程序的请求?

javascript - append 具有从 PHP 返回的特定 ID 的按钮不起作用

javascript - 如何在不打开打印对话框的情况下在angularJS中打印本地PDF