在学习Redux的时候,遇到这样一个对象(下面代码中函数的第二个参数)
export const todos = createReducer([], { [ActionTypes.ADD_TODO](state, action) { let text = action.text.trim(); return [...state, text]; } });
提炼出来,形式为{[](){}},看上去不太好理解
这里用到了ES6的两个知识点
1.属性简写
示例:
let obj = { test(){ console.log("is right!"); } }; // 等同于 var obj = { test: function(){ console.log("is right!"); } };
2.表达式作属性名
let obj = { [key]: value } //这里的key可以由表达式组成,用方括号包裹
总结如下:
var obj={"name":"test"}; var handler={[obj.name](){console.log("is right!")}}; handler[obj.name](); // "is right!"