我创建了一个这样的函数:
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/