稻草网

js中关于{[](){}}的理解

在学习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!"

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注