2016-02-20 4 views
9

Я строил приложение в реале, где я нашел линию в одном из проектов плиты котла.Что делает (состояние = {}) => состояние означает

(state = {}) => state 

Может кто-нибудь объяснить мне, что означает вышеуказанная линия? Это javascript ES6 стандарт.

+2

Возможный дубликат [Что значит «=>» (стрелка, образованная из равных & больше) в JavaScript?] (Http://stackoverflow.com/q/24900875/1048572) – Bergi

+0

действительно не уверен, как это вопрос получил так много голосов – naomik

ответ

7

Это функция (стрелка), которая возвращает свой вход. Если вход не определен, он станет значением по умолчанию {}.

Возможно, вы видели его в сочетании с использованием переключателя redux «connect», как функции, которая отображает состояние хранилища на проекцию, используемую для подключенного компонента. Если нет доступных состояний, будет предоставлен пустой объект.

7

Это arrow function с default parameter, который возвращает свой ввод или пустой объект, если вход не был предоставлен. Он похож на этот эс-5 функции:

function(){ 
    var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; 
    return state; 
} 
+0

Параметры по умолчанию не заменяют значения ложности. – Oriol

+1

Да, теперь они должны быть эквивалентными. – Oriol

+0

Это было странно, я не видел этого ответа, когда писал. –

3

Вы могли бы быть более знакомы с этими обозначениями:

function(state) { 
    if (!state) state = {}; // state defaults to {} 
    return state; 
} 

То, что вы видели это ES6 синтаксический сахар: function(state = {}) { ... } это условное обозначение для значений по умолчанию (state по умолчанию {}), а (a) => b - сокращенная нотация для function(a) { return b }. Если вы их соедините, вы получите (state = {}) => state.

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