Object.keys 和 Reflect.ownKeys 和 "esModule" 搭配在一起使用的区别

257 阅读1分钟

问题描述

这是一个测试demo的路由,我想要实现更少的路由配置来进行demo的编写,所以就想用这种方式来动态生成路由。

image.png

但是在使用中发现一件事,就是刚开始我使用Reflect.ownKeys的时候报symbol不能序列化

image.png

所以我就换了一下试试,就好了,然后就好了,log了一下看看,多了两个属性

image.png

Object.keys主要用于遍历对象自有的可枚举属性,不包括继承自原型的属性和不可枚举的属性。

Reflect.ownKeys返回所有自有属性key,不管是否可枚举,但不包括继承自原型的属性

官方对Refelct.ownKeys()的描述如下:

The Reflect.ownKeys method returns an array of the target object's own property keys. Its return value is equivalent to Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target)).

所以 esModule 有什么

所以经过babel的编译,会把import和export 进行polifill

image.png