2015-08-25 2 views
0

У меня есть функция:ошибка Javascript с установкой значения по умолчанию для функции

function modifySpinner(currentIcon, selector, spinType = remove) 
{ 
    if (spinType === 'add') { 
     // something 
    } 
} 

Но я получаю эту ошибку в моей консоли:

Uncaught SyntaxError: Unexpected token = 

Это не вызывает проблем в Firefox? Но в хроме его не работает.

ответ

1

Попробуйте вместо этого:

function modifySpinner(currentIcon, selector, spinType) 
{ 
    var spinType = spinType || "remove" 

    if (spinType === 'add') { 
     // something 
    } 
} 

Так почему это работает: если spinType не имеет значение, которое он приравнивает к undefined. С var spinType = spinType || "remove" вы говорите «эй evaulate spinType, и если это ложь, то используйте remove». undefined и null оба оценивают значение false в этом условном выражении, поэтому это означает, что если это значение не определено, используйте другое значение.

Truthy and Falsy in Javascript

1

Вы не можете использовать этот синтаксис для значения по умолчанию.

function modifySpinner(currentIcon, selector, spinType) 
{ 
    spinType = spinType || "remove"; 
    if (spinType === 'add') { 
     // something 
    } 
} 

Подобно этому, если это undefined, null ... Значение будет remove

0

Javascript не имеет параметров по умолчанию (он был введен в ECMAScript 6), вы должны сделать проверку самостоятельно:

function modifySpinner(currentIcon, selector, spinType) 
{ 
    spinType = typeof spinType !== 'undefined' ? spinType : 'remove'; 
    if (spinType === 'add') { 
     // something 
    } 
} 
Смежные вопросы