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

krl*_*krl 20 javascript ecmascript-6

什么是检查JavaScript对象是Map还是Set的替代/更好方法:

Object.getPrototypeOf(map) === Map.prototype
Object.getPrototypeOf(set) === Set.prototype
Run Code Online (Sandbox Code Playgroud)

amp*_*ine 34

用途instanceof:

var foo = new Set;
foo instanceof Set; // True!
foo instanceof Map; // False!
Run Code Online (Sandbox Code Playgroud)

  • @Bergi我不确定你所说的子类是什么意思。你可以给我一个例子吗? (3认同)
  • @nils:它也会检测子类 (2认同)
  • @amphetamachine:你的也将为`new(类MySet extends Set {})instanceof Set提供true (2认同)
  • @Bergi 谢谢你的澄清。 (2认同)