【发布时间】:2021-03-17 10:34:42
【问题描述】:
如何检查 JavaScript 变量是 Set 还是 Map?
没有等同于Array.isArray(),所以我最好的猜测是:
c.__proto__.constructor.name === 'Set'
这种方法有什么我应该注意的陷阱吗?还是更好的方法?
【问题讨论】:
-
instanceof在这里不起作用吗?例如,if (thing instanceof Set) {...} -
永远不要使用
__proto__,它已被弃用。不要使用.constructor来检查继承,而是使用instanceof。如果您真的在寻找特定的构造函数,请不要使用.name,而是通过引用进行比较。 (实际上,这些都不是Map/Set所特有的)
标签: javascript ecmascript-6 set