Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
确定变量是ES2015 Map还是普通的旧JavaScript对象_Javascript_Ecmascript 6 - Fatal编程技术网

确定变量是ES2015 Map还是普通的旧JavaScript对象

确定变量是ES2015 Map还是普通的旧JavaScript对象,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在为ES2015类编写一个构造函数,该类将接受一个或一个普通的旧JavaScript对象。如果输入参数是一个映射,构造函数将只存储它,但是如果它是一个JS对象,它应该将它转换成一个映射,比如说,通过newmap(object.keys(obj.Map)(k=>[k,obj[k]]) 我的问题是:如何安全地判断输入参数是映射还是对象?我可以测试一些特定于地图的方法,但有没有更可靠、更可读的方法?据我所知,没有与数组等效的映射。isArray您可以使用实例of Map来测试它是否是映射使用:

我正在为ES2015类编写一个构造函数,该类将接受一个或一个普通的旧JavaScript对象。如果输入参数是一个映射,构造函数将只存储它,但是如果它是一个JS对象,它应该将它转换成一个映射,比如说,通过
newmap(object.keys(obj.Map)(k=>[k,obj[k]])


我的问题是:如何安全地判断输入参数是映射还是对象?我可以测试一些特定于地图的方法,但有没有更可靠、更可读的方法?据我所知,没有与
数组等效的映射。isArray

您可以使用
实例of Map
来测试它是否是映射使用:

const map=new map()
,obj={}
console.log(map instanceof map)//true

console.log(obj instanceof Map)//false
对象。条目
不是ES6。