ES9 之 Object.entries() 的 Polyfill 实现

阅读时长 3 分钟读完

在 ES9 中,新增了一个 Object.entries() 方法,它返回一个给定对象自身可枚举属性的键值对数组。然而,在一些老的浏览器中,这个方法并不被支持。因此,我们需要手动实现一个 Polyfill,以便在这些浏览器中使用该方法。

Polyfill 实现

我们可以通过以下代码实现 Object.entries() 的 Polyfill:

-- -------------------- ---- -------
-- ----------------- -
  -------------- - ------------- -
    --- -------- - -----------------
        - - ----------------
        -------- - --- --------- -- ----------- --- -----
    ----- -----
      ----------- - ------------- ------------------

    ------ ---------
  --
-

这段代码中,我们首先判断当前环境中是否已经支持 Object.entries() 方法,如果没有,我们就手动实现一个。具体地,我们先使用 Object.keys() 方法获取对象的所有可枚举属性,并将其保存在 ownProps 数组中。然后,我们遍历 ownProps 数组,为每个属性创建一个键值对,并将它们保存在 resArray 数组中。最后,我们返回这个数组。

示例代码

我们来看一下如何使用 Object.entries() 方法以及它的 Polyfill。

-- -------------------- ---- -------
-- ----
--- --- - - ---- ------ ---- -- --

-- -- --- -- ---------------- --
--------------------------------- -- -------- ------- ------- ----

-- -- -------- --- ---------------- --
-- ----------------- -
  -------------- - ------------- -
    --- -------- - -----------------
        - - ----------------
        -------- - --- --------- -- ----------- --- -----
    ----- -----
      ----------- - ------------- ------------------

    ------ ---------
  --
-

--------------------------------- -- -------- ------- ------- ----

在上面的代码中,我们首先定义了一个示例对象 obj。然后,我们先使用 ES9 中的 Object.entries() 方法打印出 obj 的所有键值对。接着,我们手动实现了一个 Object.entries() 方法,并再次打印出 obj 的所有键值对。可以看到,这两次打印结果是相同的。

总结

Object.entries() 方法是 ES9 中新增的方法,它返回一个给定对象自身可枚举属性的键值对数组。在一些老的浏览器中,这个方法并不被支持。因此,我们需要手动实现一个 Polyfill,以便在这些浏览器中使用该方法。本文介绍了如何实现 Object.entries() 的 Polyfill,并给出了示例代码。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/653c54387d4982a6eb67f2a4

纠错
反馈