我的代码如下:
function getTopicOptions(accountID, showTitles, showSelectGroup) {
"use strict";
var accountID = store.getItem('AccountID');
showTitles = (showTitles !== 'undefined') ? showTitles : 'Y';
showSelectGroup = (showSelectGroup !== 'undefined') ? showSelectGroup : 'Y';
这个想法是,如果没有提供showTitle和showSelectGroup,那么它们将获得默认值“Y”。
有没有办法通过函数重载或检查函数参数的方法(jslint?)或简化我需要做的事情而没有未定义的检查?
答案 0 :(得分:3)
你可以这样做:
showTitles = showTitles || 'Y';
或者这也可以,但更详细
showTitles = showTitles ? showTitles : 'Y';
我不确定函数重载在哪里出现在您的问题中。
答案 1 :(得分:1)
有流行的默认params技巧:
var showSelectGroup = showSelectGroup || false;
但它依赖于param,如果它bool
(''
,0
等)并且看起来像showSelectGroup || true
则无法设置false
< / p>
另见:
答案 2 :(得分:0)
修改强>
以下是可能的
var functionTest = function(argu) {
argu = argu || 'my argument';//ifargu not passed than 'my argument'
return argu;
};
alert(functionTest());
// browser alerts "my argument"
javascript中没有函数重载的方法,
但如果你没有在功能中传递vlaue,那么它就变成了未定义的值,这意味着你可以调用这个函数
这个功能
getTopicOptions(accountID, showTitles, showSelectGroup)
可以像
一样调用getTopicOptions(1);
其他两个值变为未定义。
答案 3 :(得分:0)
有一个arguments
对象(或多或少)是所有提供的参数的数组。你可以循环使用这些。
请参阅http://javascriptweblog.wordpress.com/2011/01/18/javascripts-arguments-object-and-beyond/