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 : 0name : ""prototype : {constructor: ƒ}__proto__ : ƒ ()[[FunctionLocation]] : emptyFunction.js:13[[Scopes]] : Scopes[2]那这个对象里的[[]](双方括号)属性命名是有什么意义?
1 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
双方括号代表这是JavaScript引擎内部使用的属性/方法,可以帮助debug(点一下[[FunctionLocation]]
就能跳到定义,点一下[[Scopes]]
就能查看闭包),但是正常JavaScript代码是取不到这些属性的。
引擎看心情决定要显示哪些内部属性,显示的格式也没有规定,但在控制台里大家一般都约定俗成用双方括号,保持和规范的格式一致。
ECMA 标准: Object Internal Methods and Internal Slots
添加回答
举报
0/150
提交
取消