es6中对象属性双方括号是什么意思
### es6中对象属性双方括号是什么意思?
在react表单输入输入框的change事件中
```
handleChange = (e) => {
    console.log(e);
    this.setState({
      value: e.target.value
    });
}
```
这里的event对象是一个proxy对象，将其打印到控制台输出如下
```
[[Handler]] : Object
  set : ƒ (target, prop, value)
  __proto__ : Object
[[Target]] : SyntheticEvent
  bubbles : (...)
  cancelable : (...)
  currentTarget : (...)
  defaultPrevented : (...)
  dispatchConfig : null
  eventPhase : (...)
  isDefaultPrevented : null
  isPropagationStopped : null
  isTrusted : (...)
  nativeEvent : (...)
  target : (...)
  timeStamp : (...)
  type : (...)
  _dispatchInstances : null
  _dispatchListeners : null
  _targetInst : null
  preventDefault : (...)
  stopPropagation : (...)
  get bubbles : ƒ ()
  set bubbles : ƒ (val)
  get cancelable : ƒ ()
  set cancelable : ƒ (val)
  get currentTarget : ƒ ()
  set currentTarget : ƒ (val)
  get defaultPrevented : ƒ ()
  set defaultPrevented : ƒ (val)
  get eventPhase : ƒ ()
  set eventPhase : ƒ (val)
  get isTrusted : ƒ ()
  set isTrusted : ƒ (val)
  get nativeEvent : ƒ ()
  set nativeEvent : ƒ (val)
  get target : ƒ ()
  set target : ƒ (val)
  get timeStamp : ƒ ()
  set timeStamp : ƒ (val)
  get type : ƒ ()
  set type : ƒ (val)
  get preventDefault : ƒ ()
  set preventDefault : ƒ (val)
  get stopPropagation : ƒ ()
  set stopPropagation : ƒ (val)
  __proto__ : Object
[[IsRevoked]] : false
﻿

```
如果是函数对象又会有这样的结构
```
arguments : (...)
caller : (...)
length : 0
name : ""
prototype : {constructor: ƒ}
__proto__ : ƒ ()
[[FunctionLocation]] : emptyFunction.js:13
[[Scopes]] : Scopes[2]
```
那这个对象里的[[]]（双方括号）属性命名是有什么意义？
双方括号代表这是JavaScript引擎内部使用的属性/方法，可以帮助debug（点一下`[[FunctionLocation]]`就能跳到定义，点一下`[[Scopes]]`就能查看闭包），但是正常JavaScript代码是取不到这些属性的。
引擎看心情决定要显示哪些内部属性，显示的格式也没有规定，但在控制台里大家一般都约定俗成用双方括号，保持和规范的格式一致。
ECMA 标准： Object Internal Methods and Internal Slots