2017-02-11 4 views
2

Только что начал изучать response.js и javascript. Я просматриваю всю документацию на github facebook, но застрял в этом.response.js setState вызов с ключом, но без значения?

В методы handleCelsiusChange из Калькулятора класса в Lifting state up главы есть эта строка:

this.setState({scale: 'c', value}); 

Так масштаб получит значение 'с'. Хорошо. Но что это такое значение просто? Разве это не пара ключей? Я проверил explanation of setState():

Первый аргумент может быть объект (содержащий ноль или несколько ключей для обновления) или функции (состояний и реквизита), который возвращает объект , содержащих ключи для обновления.

Но в этом заявлении ничего не говорится об этом использовании.

Спасибо! :)

ответ

2

Это на самом деле особенность ES6. Если ключ соответствует существующему имени переменной, вы можете использовать этот сокращенный синтаксис. Поэтому вместо того, чтобы писать value: value, вы можете просто написать value, так как имя ключа и переменной одинаково.

Пример с ES6

function getCar(make, model, value) { 
    return { 
     // with property value shorthand 
     // syntax, you can omit the property 
     // value if key matches variable 
     // name 
     make, 
     model, 
     value 
    }; 
} 

эквивалент выше в ES3/ES5

function getCar(make, model, value) { 
    return { 
     make: make, 
     model: model, 
     value: value 
    }; 
} 

Пример взят из http://www.benmvp.com/learning-es6-enhanced-object-literals/