在学习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!"
文章评论