资讯专栏INFORMATION COLUMN

JS红皮书解读之防篡改对象

张迁 / 768人阅读

摘要:注意一旦把对象定义为防篡改,就无法撤销了。使用阻止对象扩展注意严格模式下,不是而是报错。使用冻结对象对于库作者而言,冻结对象可防止有人修改库的核心对象。

前言:
去年7月份在简书写的,发现后端、React中也有体现,觉得有必要在微信上分享下。

注意:一旦把对象定义为防篡改,就无法撤销了。

1.不可扩展对象
扩展指可以给对象添加属性和方法。

使用Object.preventExtensions(object)阻止对象扩展

   let a={name:"chen"}
    Object.preventExtensions(a)
    a.age=18
    console.log(a.age) //undefined
    delete a.name
    console.log(a) //{}

注意:
(1)严格模式下,不是undefined而是报错。
(2)可以删除或修改已有对象属性,但不可添加新属性

使用Object.isExtensible(object) 判断对象是否可扩展

console.log(Object.isExtensible(a))  //false

2.密封的对象(sealed object)
注意:
(1)被密封的对象不可扩展,因此可用Object.isExtensible(object)来判断
(2)可以修改,不可删除已有属性,不可添加新属性

    Object.seal(a)
    a.age=20
    delete a.name
    console.log(a.name) //chen
    a.name="ch"
    console.log(a.name) //ch

使用Object.isSealed(object)判断是否密封

3.冻结的对象(frozen object)
冻结的对象是最严格的防篡改级别,既不可扩展,也是密封的,不可修改属性。

使用Object.freeze(object)冻结对象

对于JS库作者而言,冻结对象可防止有人修改库的核心对象。

(完)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105616.html

相关文章

  • React源码解析之React.createElement()和ReactElement()

    摘要:一语法转换到语法从转换到会用到,所以先熟悉下到的转换。对于库作者而言,冻结对象可防止有人修改库的核心对象。 showImg(https://segmentfault.com/img/remote/1460000019757204); 一、JSX语法转换到Js语法从 JSX 转换到 JS 会用到React.createElement(),所以先熟悉下 JSX 到 JS 的转换。 这边是 ...

    BlackMass 评论0 收藏0
  • 关于比特币白皮书的个人解读

    摘要:但同时由于比特币交易确认后无法更改,也从另一个方面导致买家付了款而卖家据不发货的漏洞。明白了这个原理,我们来看如何将比特币从一个人发给另一个人。 摘要 首先中本聪在摘要中就指明了要建立的是一个去中心化的p2p支付系统,并且不引入第三方来解决双重支付(double-spending)问题。并且提出了解决方案思路,提及时间戳(Timestamps)、工作量证明(Proof-of-Work)...

    RyanQ 评论0 收藏0
  • 开发零成本 :En-Tan-Mo黄皮书解读之开发者篇

    摘要:项目黄皮书一经发布,区块链垂直媒体星球日报就对这本书作了专题式的解读。在接受星球日报采访中,开发者们表示,担心节点集中化带来的安全风险。本文,星球日报将通过解读黄皮书,解答开发者关心的问题。 showImg(https://segmentfault.com/img/bVbt2EX?w=800&h=534); 由ETM科学院历时半年打磨的黄皮书,从科学和技术两方面全方位解读了ETM的理论...

    pakolagij 评论0 收藏0
  • 开发零成本 :En-Tan-Mo黄皮书解读之开发者篇

    摘要:项目黄皮书一经发布,区块链垂直媒体星球日报就对这本书作了专题式的解读。在接受星球日报采访中,开发者们表示,担心节点集中化带来的安全风险。本文,星球日报将通过解读黄皮书,解答开发者关心的问题。 showImg(https://segmentfault.com/img/bVbt2EX?w=800&h=534); 由ETM科学院历时半年打磨的黄皮书,从科学和技术两方面全方位解读了ETM的理论...

    plus2047 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<