2012-04-12 5 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 functionПозволяет ли javascript использовать параметры по умолчанию?

У меня есть следующие функции:

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

Called так:

gridClick(this, action) 

Теперь я хотел бы добавить еще один параметр в функции, чтобы сделать это следующим образом:

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

Если я это сделаю, то мне нужно будет изменить все вызовы функций или есть какой-то способ, что я могу имеет ли значение по умолчанию значение true для параметра mce, если функция вызывается только с первыми двумя аргументами?

+0

Добро пожаловать в StackOverflow. Вы задали большой вопрос, который уже задавали и отвечали в прошлом. См. «Связанные» вопросы в правом столбце этой страницы для ответа. –

ответ

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. Если бы это было так, этот код всегда переопределял бы его. –

+1

Абсолютно, я печатал более выразительное (и откровенно правильное) решение, когда вопрос был закрыт. Я бы счел эту плохую форму, неважно. –

+0

Ответ на запрос 'Если в вызове был указан mce, используйте это. Если нет, значение по умолчанию равно true. 'НЕ правильно. Если функция «false» предоставляется вызывающей функцией, она будет изменена на «true». Необходимо сравнить с неопределенным. –

Смежные вопросы