了解Map.prototype javascript
大家好...... 我已经通过许多示例和教程来了解Map.prototype实际代表什么。 在一些博客中,我看到它代表了Map对象但是如果我在同一个文件中创建了两个Map对象,它将引用哪一个? 谁能告诉我们以下条件是什么意思?
var temp = Map.prototype ? new Map() : {} ;
他们是否检查是否创建了Map的任何对象,然后创建新对象??
答案 0 :(得分:1)
由于不止一个原因,这种情况很奇怪。
看起来像一样,试图查看它运行的JavaScript引擎是否支持Map
(Map
是在ES2015中引入,并非所有引擎都有它),但检查有缺陷,如果实现没有Map
,实际上会产生错误。检查至少应该是:
var temp = typeof Map != "undefined" && Map.prototype ? new Map() : {} ;
最终结果是您有temp
可能是普通对象,或者可能是Map
实例。但是你不能以同样的方式使用Map
实例和普通对象,所以这样做很奇怪。
坦率地说,我不担心这条线(我会对它及其周围的代码保持警惕)。
我已经通过许多示例和教程来了解Map.prototype实际代表什么。我已经通过许多示例和教程来了解Map.prototype实际代表什么...在一些博客中我看到它代表Map对象但是如果我在同一个文件中创建了两个Map对象,它将引用哪个?
Map.prototype
引用的对象是将用作Map
实例原型的对象。那就是:
let m1 = new Map();
let m2 = new Map();
这两个实例将共享相同的基础原型对象,即Map.prototype
引用的原型对象。
该底层原型为实例提供了各种功能,例如get
和`set方法。
How does JavaScript .prototype work?中详细介绍了您问题的这一方面。