2012-04-12 61 views
-2

可能重复:
Is there a better way to do optional function parameters in Javascript?
How do I make a default value for a parameter to a javascript functionJavaScript是否允许使用默认参数?

我有以下功能:

function gridClick(link, action) { 
    ... 
    ... 

这样调用:

gridClick(this, action) 

我现在想另一个参数添加到功能,使这样的:

function gridClick(link, action, mce) { 
    ... 
    ... 

如果我这样做,那么我就需要改变所有的函数调用或者是有一些办法,我可以如果只用前两个参数调用函数,那么函数默认为参数mce的值为true?

+0

欢迎来到StackOverflow。你问了一个很好的问题,过去已经提出并回答过。请参阅本页右栏的“链接”问题以获得答案。 – 2012-04-12 13:56:42

回答

1

我一直只是做到了这一点在函数体:

mce = (mce === undefined) ? true : mce; 
// Alternately 
mce = (mce !== undefined) ? mce : true; 
// Or even 
mce = (typeof mce === "undefined") ? true : mce; 
// Above alteration applies here too. 
mce = (typeof mce !== "undefined") ? mce: true; 

如果MCE已经在电话中提供,使用它。如果不是,则默认为true。

+1

只要false不是mce的有效值,就会工作。如果是这样,这段代码总是会覆盖它。 – 2012-04-12 13:55:51

+1

当问题关闭时,我打出了更具表现力(坦率而正确)的解决方案。我会考虑这种糟糕的形式,不要介意。 – 2012-04-12 13:58:19

+0

答案的陈述:“如果在呼叫中提供了mce,请使用它。如果不是,则默认为true.'不正确。如果函数的调用者提供了'false',它将被改为'true'。需要与undefined进行比较。 – 2012-04-12 13:59:21