2017-05-13 3 views
2

私は反応サンプルプロジェクトを読んでいます。私はACTION_HANDLERS手段をしているかわからないJavascript:このjavascript機能は何ですか

export const COUNTER_INCREMENT = 'COUNTER_INCREMENT'; 
export const COUNTER_DOUBLE_ASYNC = 'COUNTER_DOUBLE_ASYNC'; 

// ------------------------------------ 
// Action Handlers 
// ------------------------------------ 
const ACTION_HANDLERS = { 
    [COUNTER_INCREMENT] : (state, action) => state + action.payload, 
    [COUNTER_DOUBLE_ASYNC] : (state, action) => state * 2, 
}; 

:ここでは減速コードです。このjavascriptの機能は何ですか?

おかげ

+1

'ACTION_HANDLERS'はちょうどここに一定の宣言に使用される通常、大文字の識別子名でハンドラ関数を含むオブジェクトです。特別な隠された意味は割り当てられていません。それが使われているコードの部分を見てください。 – Bergi

答えて

3

ACTION_HANDLERSはComputed property namesとちょうどjavascriptオブジェクトです。

ECMAScript 2015以降、オブジェクト初期化子構文 も計算されたプロパティ名をサポートしています。これにより、式 を大括弧[]に入れることができます。これはプロパティ名として計算されます。これは、arrow functionを持っている、あなたが読んで、各アクションタイプの場合は、すでに

プロパティを設定するために使用した可能性がありますプロパティアクセサ構文、 のブラケット表記と対称 です。

1

ACTION_HANDLERSは、constキーワードを使用して宣言された定数変数です。定数は、値を再割当てできないという点を除いて、通常の変数と似ています。この場合

ACTION_HANDLERSは

関連する問題