Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么';t通过spread运算符来分解MessageEvent是否返回所有属性?_Javascript - Fatal编程技术网

Javascript 为什么';t通过spread运算符来分解MessageEvent是否返回所有属性?

Javascript 为什么';t通过spread运算符来分解MessageEvent是否返回所有属性?,javascript,Javascript,在Chrome开发控制台中: event = new MessageEvent({data: 'some data'}) MessageEvent {isTrusted: false, data: null, origin: "", lastEventId: "", source: null, …} 当我尝试spread操作符时: {...event} {isTrusted: false} …我只看到是受信任的属性。扩展运算符只复制对象自身的可枚举属性,而不复制原型链上较高位置的属性。如果您

在Chrome开发控制台中:

event = new MessageEvent({data: 'some data'})
MessageEvent {isTrusted: false, data: null, origin: "", lastEventId: "", source: null, …}
当我尝试spread操作符时:

{...event}
{isTrusted: false}

…我只看到
是受信任的
属性。

扩展运算符只复制对象自身的可枚举属性,而不复制原型链上较高位置的属性。如果您查看
事件
自身的属性,您将看到它只有
受信任的属性

> Object.getOwnPropertyNames(event)
> ["isTrusted"]
如果您查看原型链上的一个步骤,您将看到其他一些属性的位置:

> Object.getOwnPropertyNames(event.__proto__)
> (7) ["data", "origin", "lastEventId", "source", "ports", "initMessageEvent", "constructor"]

spread操作符仅复制对象自身的可枚举属性,而不复制原型链上较高位置的属性。如果您查看
事件
自身的属性,您将看到它只有
受信任的属性

> Object.getOwnPropertyNames(event)
> ["isTrusted"]
如果您查看原型链上的一个步骤,您将看到其他一些属性的位置:

> Object.getOwnPropertyNames(event.__proto__)
> (7) ["data", "origin", "lastEventId", "source", "ports", "initMessageEvent", "constructor"]