方法中的默认变量
Default vars in a method?
这是我的方法:
p.show = function(message, status, timer){
//do stuff
};
是否有一种方法,可以让像timer这样的变量没有传入时,为它们设置一个默认值,例如true。
在php中,我将这样做:
private function show(message, status, timer = true){
}
是的,逻辑上等价的是测试arguments
类数组对象的长度:
p.show = function(message, status, timer){
if (arguments.length < 3 )
timer = 1000; // default value
//do stuff
};
如果您想将其设置为默认值,即使它是手动传入的,但undefined
传入的值,您也可以使用:
p.show = function(message, status, timer){
if (timer === undefined)
timer = 1000;
//do stuff
};
一个更常见的方法是使用timer = timer || 1000;
,如果它有一个假的值开始,将定时器设置为1000
,所以如果有人传递没有第三个参数,或者如果他们传递0
,它仍然将被设置为1000
,但如果他们传递一个真值,如50
或一个对象,它将保持该值。
在Javascript (ES6)的未来版本中,你将能够像在PHP中那样使用默认参数:
p.show = function(message, status, timer = 1000){
//do stuff
};
No。这必须手动完成:
p.show = function(message, status, timer) {
if( timer === undefined) timer = true;
}
如果你的函数不期望false值,你也可以这样做:
timer = timer || true;
// this is commonly seen in event handlers as e = e || window.event;
p.show = function(message, status, timer){
timer = (timer !== undefined && timer !== null) ? timer : 60;
};
相关文章:
- 使用BabelJS导出默认变量
- 根据Angular中的单独变量设置下拉默认值
- 阻止默认行为后,回车键似乎正在刷新 java 脚本中的全局变量
- 让 javascript 将(默认情况下)未声明的变量声明到当前本地范围(基于首次使用)而不是全局范围
- JavaScript:将变量设为默认值
- 在 javascript 中声明变量时,默认值为 null
- 默认导出为全局变量 Typescript 1.8 --module UMD
- Javascript:使用变量,或者如果它's未定义,为默认字符串
- jQuery 1.5.2:函数中不可修改的默认变量
- 为什么闭包函数中的 javascript 变量在多次调用时不会重置为默认值
- 我如何替换默认JSON.用我自己的变量将变量K和A字符串化
- 如何轻松地将变量设置为false,而默认值为true ?
- 等于ko.observable()的变量的默认值是多少?
- 如何将数组中的第一个变量设为默认值
- 在主干模型上声明变量而不设置默认值
- 未传递的Coffeescript默认参数不会赋值给与arg同名的外部变量
- 如何在angularjs中设置作用域变量的默认值
- 变量重置为默认选项,WHY
- Javascript:在下拉菜单中设置默认变量
- 停止事件并将变量设置为默认值