当前位置: 首页 > 网络应用技术

object.freeze and object.seal在JavaScript中

时间:2023-03-08 11:20:35 网络应用技术

  在编程语言中,数据不可见一直很重要,而JavaScript中的数据也是如此。这里有两种可以确保的JavaScript方法:Harmony.LET的总结可以在本文中使用这两种方法??有什么缺点?

  在理解之前,让我们首先了解该方法是什么。当引擎在初始处理过程中创建一个对象时,JavaScript将新对象提供给了新创建的对象,以从外部处理请求,例如访问或删除属性。

  可以修改或设置的属性如下:

  让我们看一些简单的代码:

  枚举

  写

  可配置

  但是,如果是真的,它将被忽略。

  在JavaScript中,与执行相同的事情。未配置传递给它的所有属性,可用于防止添加新属性并将属性删除到对象中,但允许更改并更新现有属性。请查看以下示例。:

  以上代码定义一个具有属性的对象。初始描述属性的值如下:

  然后使用密封对象查看哪些描述性更改已更改,哪些不变。从结果来看,只能更改配置。

  尽管以后的配置是现在,但它仍然通过代码更改其属性值。如前所述,设置了配置设置以使属性不成文,但是如果很清楚,则无法正常工作。创建对象并设置新属性时,默认为默认。

  它将使每个属性无法预测以防止删除。从上述代码执行后,它将变得无效。

  当或称为时,执行对象将成为一个可扩展的对象,这意味着它不能从中删除或无法将任何属性添加到其中。

  与限制传输对象相比,这与上述代码进行了比较,如下所示:

  从上面的代码的结果来看,差异是执行后的属性值也变成。因此,以下代码无效更新其属性。类似地,未配置对象,这使对象的每个属性都使对象无法删除。

  在执行对象后允许属性,并且不允许执行。

  由于缺乏“实用性”,它们仅对物体的第一层有效。

  如果您想避免更深层次的有效对象属性,则需要编写一些代码(例如Deep Copies)才能实现()::

  如果您想对嵌套对象产生影响,还需要编写代码以实现():

  在现代前端开发中,这是一种非常有用的方法。如果您想对深度有效,则可以使用上述方法。