检查JavaScript对象是否是Map或Set(ECMAScript 2015)

66

有没有比以下方式更好的方法来检查JavaScript对象是否为Map或Set:

Object.getPrototypeOf(map) === Map.prototype
Object.getPrototypeOf(set) === Set.prototype
1个回答

123

使用 instanceof 运算符:

var foo = new Set;
foo instanceof Set; // True!
foo instanceof Map; // False!

5
它还将检测子类。 - Bergi
3
@Bergi 我不确定你说的子类是什么意思。你能给我一个例子吗? - amphetamachine
13
你的代码new (class MySet extends Set {}) instanceof Set也将返回true - Bergi
2
@Bergi 谢谢您的澄清。 - nils

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接