我正在写一些正在传递Map Iterator的NodeJS代码。检查Javascript对象以确定它是" Map Iterator"?
的正确方法是什么?我试过了:
typeof myMap.keys() returns 'Object'
typeof myMap.keys().next === 'function' returns true
所以我要检查传递的对象是否有next()函数。有一个更好的方法吗?
Chrome调试器对象是一个Map Iterator,因此我猜测有一种更正确的Javascript方式可以做到这一点。
答案 0 :(得分:1)
如果您要做的只是检查它是否是Map(可以迭代),您可以使用myMap instanceof Map
执行此操作,返回布尔值。
答案 1 :(得分:0)
您获得了对象的Symbol.toStringTag
属性
var m = new Map;
m.set(1, [123]);
var gen = m.entries();
console.log(gen.toString()); // "[object Map Iterator]";
console.log(gen[Symbol.toStringTag] === "Map Iterator"); // true