方法中的默认值?
这个问题在这里已经有了答案:
是的,逻辑上的等价物是测试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;
timer = timer || 1000;
如果它有一个虚假值开始,它将设置定时器为1000
,所以如果有人没有通过第三个参数,或者如果他们通过0
,它仍然会被设置为1000
,但是如果它们传递的真值为50
或一个对象,它会保持这个值。
在未来的Javascript版本(ES6)中,您将能够像使用PHP一样使用默认参数:
p.show = function(message, status, timer = 1000){
//do stuff
};
不可以。这个必须手动完成:
p.show = function(message, status, timer) {
if( timer === undefined) timer = true;
}
如果你的函数不期望falsy值,你也可以这样做:
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;
};
链接地址: http://www.djcxy.com/p/17283.html
上一篇: Default vars in a method?
下一篇: JS if not a variable