Default vars in a method?
本问题已经有最佳答案,请猛点这里访问。
我的方法是:
1 2 3 4 | p.show = function(message, status, timer){ //do stuff }; |
有没有一种方法,如果不传入诸如timer之类的var,那么为它们设置一个默认值,例如true。
在PHP中,我可以这样做:
1 2 | private function show(message, status, timer = true){ } |
是的,相当于一个额外的逻辑是测试的长度的
1 2 3 4 5 | p.show = function(message, status, timer){ if (arguments.length < 3 ) timer = 1000; // default value //do stuff }; |
如果你想设置它的默认值,如果她是通过在人力,但
1 2 3 4 5 | p.show = function(message, status, timer){ if (timer === undefined) timer = 1000; //do stuff }; |
一个更普通的方式是使用这将是
在未来的版本中的JavaScript(es6),你将能使用默认的arguments路你是用来从PHP: </P >
1 2 3 | p.show = function(message, status, timer = 1000){ //do stuff }; |
好的。我必须做人力: </P >
1 2 3 | p.show = function(message, status, timer) { if( timer === undefined) timer = true; } |
如果你并不希望falsy函数值,你也可以做这个: </P >
1 2 | timer = timer || true; // this is commonly seen in event handlers as e = e || window.event; |
1 2 3 | p.show = function(message, status, timer){ timer = (timer !== undefined && timer !== null) ? timer : 60; }; |