【问题标题】:Where are Map entries stored?地图条目存储在哪里?
【发布时间】:2020-11-11 11:05:25
【问题描述】:

如果我尝试在不调用构造函数的情况下创建 Map,则该对象将无法使用:

const map = Object.create(Map.prototype);
map.entries();

出于好奇,我想知道条目存储在哪里,但构造函数似乎没有添加属性:

const map = new Map;
console.log(Object.getPrototypeOf(map) === Map.prototype);
console.log(Object.getOwnPropertyDescriptors(map));

有什么想法吗?

【问题讨论】:

  • 为什么它真的很重要?这将是一个实现细节。这甚至可能在 JS 中都不可见。

标签: javascript dictionary es6-map


【解决方案1】:

它们存储在对象的internal slot 中,只有在您调用new Map 时才会创建该对象。这是本机集合的实现细节。您只能通过本机方法访问条目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-05
    • 2021-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多