在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ es6中對象屬性雙方括號是什么意思

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
?

如果是函數(shù)對象又會有這樣的結(jié)構(gòu)

arguments : (...)
caller : (...)
length : 0
name : ""
prototype : {constructor: ?}
__proto__ : ? ()
[[FunctionLocation]] : emptyFunction.js:13
[[Scopes]] : Scopes[2]

那這個對象里的[[]](雙方括號)屬性命名是有什么意義?

回答
編輯回答
遺莣

雙方括號代表這是JavaScript引擎內(nèi)部使用的屬性/方法,可以幫助debug(點一下[[FunctionLocation]]就能跳到定義,點一下[[Scopes]]就能查看閉包),但是正常JavaScript代碼是取不到這些屬性的。

引擎看心情決定要顯示哪些內(nèi)部屬性,顯示的格式也沒有規(guī)定,但在控制臺里大家一般都約定俗成用雙方括號,保持和規(guī)范的格式一致。

ECMA 標準: Object Internal Methods and Internal Slots

2017年6月14日 13:13