美文网首页
js中的防篡改对象

js中的防篡改对象

作者: jadefan | 来源:发表于2019-10-27 10:53 被阅读0次

在js中,任何对象都可以被在同一环境中运行的代码修改,开发人员很可能意外的修改别人的代码,甚至用不兼容的功能重写原生对象,这种js共享的本质一直是开发人员心头的痛,ES5提供了防篡改对象,致力于解决这个问题。

不可扩展对象

通过Object.preventExtensions()方法可以将对象设置为不可扩展,即时动态添加了属性,也是不生效的

    var obj = {
      name: 'wang'
    }
    Object.preventExtensions(obj);
    obj.age = 18;
    console.log(obj.age);  //undefined
    console.log(Object.isExtensible(obj));  //false

判断一个对象是否可以扩展,用Object.isExtensible()

密封对象

密封对象在不可扩展的基础上,也不能删除属性和方法,也就是将对象的[[Configurable]]特性设置为了false。

    Object.seal(obj);
    delete obj.name;
    console.log(obj.name);  //wang
    console.log(Object.isSealed(obj));  //true

判断一个对象是否密封,用Object.isSealed()

冻结对象

冻结对象(frozen object)是最严格的防篡改级别,即不可扩展,又是密封的,而且属性和方法是不可编辑的,也就是将对象的[[Writeable]]特性设置为了false

    Object.freeze(obj);
    obj.name = 'zhang';
    console.log(obj.name);  //wang
    Object.isFrozen(obj);  //true

判断一个对象是否冻结,用Object.isFrozen()

相关文章

  • js中的防篡改对象

    在js中,任何对象都可以被在同一环境中运行的代码修改,开发人员很可能意外的修改别人的代码,甚至用不兼容的功能重写原...

  • JS防篡改对象

    防篡改对象 JS是若类型语言,变量和对象都可以被同一个运行环境中的代码修改掉;开发人员很可能会意外地修改别人的代码...

  • JS防篡改对象

    1. 一级保护措施:不可扩展对象 在默认情况下,所有对象都是可以扩展的,也就是说,无论什么时候都可以向对象中添加属...

  • 防篡改对象

    1、不可拓展对象 使用Object.preventExtensions(obj)方法,阻止对obj添加属性或方法,...

  • JavaScript防篡改对象

    preventExtensions:不能增,能删改seal:不能增删,能改freeze:不能增删改 对象属性增删改...

  • JavaScript 防篡改对象

    开发过程中,每个开发者定义的对象可能不想要被别的开发者所重写或者新增对象属性,这时候可以将对象变为防篡改对象,当然...

  • JS防止篡改对象(锁定/密封/冻结对象)

    JS防止篡改对象的三种方法 1.锁定对象,不可扩展的对象,但可删除 Object.preventExtensi...

  • 防篡改对象:preventExtensions(),seal()

    不可扩展对象isExtensions:不可以给对象再添加新属性和方法了,但是可以修改和删除已有的成员。 密闭的对象...

  • 高级技巧

    本章内容:使用高级函数、防篡改对象、Yielding with Timers JavaScript 是一种极其灵活...

  • 深度分析JavaScript创建防篡改对象的

    本文实例讲述了JavaScript创建防篡改对象的方法。分享给大家供大家参考,具体如下: 之前的 JavaScri...

网友评论

      本文标题:js中的防篡改对象

      本文链接:https://www.haomeiwen.com/subject/hwypvctx.html