记录一个中括号的问题

看到一处 react 属性状态赋值的写法,有一处中括号的用法如下:

class Form extends React.Component {
  setField(key) {
    return (e)=>{
       this.setState({
          [key]: e.target.value //此处的中括号引起了我的注意~~
        });
    }  
  } 

    render() {
       // ......    
    } 

}    

本来以为此处是以一个数组作为 key 值。实际情况是,此处只是为了避免出现编译语法将 key 认为是 "key"字符串而采用的处理。

类似于强制编译器将此处进行 eval处理。

因为这种语法

const obj = {key: 123}; //此处的 key 即是字符串 "key"
// 又比如
const key = "iamkey";
obj[[[key]]] = "value";//最终编译出来即是 obj = {"key": "value",....}

  

原文地址:https://www.cnblogs.com/asdfq/p/6636273.html