在javascript中理解原型或Map.prototype

时间:2016-12-28 16:08:39

标签: javascript arrays javascript-objects

了解Map.prototype javascript

大家好...... 我已经通过许多示例和教程来了解Map.prototype实际代表什么。  在一些博客中,我看到它代表了Map对象但是如果我在同一个文件中创建了两个Map对象,它将引用哪一个?  谁能告诉我们以下条件是什么意思?

var temp = Map.prototype ? new Map() : {} ;

他们是否检查是否创建了Map的任何对象,然后创建新对象??

1 个答案:

答案 0 :(得分:1)

由于不止一个原因,这种情况很奇怪。

  1. 看起来像一样,试图查看它运行的JavaScript引擎是否支持MapMap是在ES2015中引入,并非所有引擎都有它),但检查有缺陷,如果实现没有Map,实际上会产生错误。检查至少应该是:

    var temp = typeof Map != "undefined" && Map.prototype ? new Map() : {} ;
    
  2. 最终结果是您有temp可能是普通对象,或者可能是Map实例。但是你不能以同样的方式使用Map实例和普通对象,所以这样做很奇怪。

  3. 坦率地说,我不担心这条线(我会对它及其周围的代码保持警惕)。

      

    我已经通过许多示例和教程来了解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?中详细介绍了您问题的这一方面。