2015-11-19 2 views
0

Я изучаю Redux & Реагирует от http://teropa.info/blog/2015/09/10/full-stack-redux-tutorial.html.Что такое javascript const class?

в коде фрагментов кода:

import React from 'react'; 
import PureRenderMixin from 'react-addons-pure-render-mixin'; 
import {connect} from 'react-redux'; 
import Winner from './Winner'; 
import Vote from './Vote'; 

export const Voting = React.createClass({ 
    mixins: [PureRenderMixin], 
    render: function() { 
    return <div> 
     {this.props.winner ? 
     <Winner ref="winner" winner={this.props.winner} /> : 
     <Vote {...this.props} />} 
    </div>; 
    } 
}); 

function mapStateToProps(state) { 
    return { 
    pair: state.getIn(['vote', 'pair']), 
    winner: state.get('winner') 
    }; 
} 

export const VotingContainer = connect(mapStateToProps)(Voting); 

автор создает «проводной» реагирует компонент из «чистой» компоненты. Я немного смущен двумя ключевыми словами «const», указанными в коде. Я могу понять значение const и объект в javascript, но класс const не имеет смысла для меня с точки зрения OO.

Будет ли иметь значение, если я удалю ключевое слово "const" из первого и/или второго случаев?

ответ

3

Const - это назначение области с привязкой к блоку, которая назначает постоянную ссылку (не постоянное значение.) Это означает, что вы не можете повторно назначить голосование или VotingContainer позже случайно в этом модуле.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const

(и да, вы могли бы перейти из сопзЬ с Пусть/вар)

+0

я просто указать на поведение этого Const является несовместимым между строгим режимом и нормальным JavaScript. Выбор использования const должен выполняться только при использовании директивы среды исполнения «use strict», так как на Chrome по крайней мере consts нарушают область блока, если не в строгом режиме. Это может быть изменено в любое время, в результате чего появляются необнаруженные ошибки, – Blindman67

+0

@ Blindman67. Значит ли это, что поведение довольно непредсказуемо, особенно если я ожидаю, что он будет работать в другом браузере? Просто удалит «const» и код, чтобы решить проблему? –

+0

Если вы используете его правильно, вы должны быть в порядке, в строгом режиме эти ошибки будут бросаться, в то время как в обычном javascript они будут терпеть неудачу молча, позволяя обнаружить ошибку без обнаружения, пока браузеры не изменят правила. Вместо того, чтобы не использовать const, убедитесь весь код работает в строгом режиме с директивой '' use strict ''. Преимущества строгого режима - отличное, лучшее обнаружение синтаксических ошибок, быстрый код и спокойствие, что ваша среда не будет внезапно изменяться. Действительно, если вы не используете «использовать строгий», вы играете с огнем. – Blindman67

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