美文网首页
JavaScript防篡改对象

JavaScript防篡改对象

作者: 春风本是人间客 | 来源:发表于2020-06-30 14:47 被阅读0次

    preventExtensions:不能增,能删改
    seal:不能增删,能改
    freeze:不能增删改

    对象属性
    preventExtensions X
    seal X X
    freeze X X X

    不可扩展对象preventExtensions

    Object.preventExtensions不能增,能删改

    var obj = {a:1,b:2};
    Object.preventExtensions(obj);
    obj.c = 3;
    console.log(obj.c); // undefined
    delete obj.a;
    console.log(obj); // {b: 2} 删除成功
    obj.b = 'hello'
    console.log(obj); // {b: "hello"} 修改成功
    

    检测是否不可扩展Object.isExtensible(obj)

    (false是不可扩展,true是正常对象)

    Object.isExtensible(obj);// false
    

    密封的对象seal

    Object.seal不能增删,能改

    var obj = {a:1,b:2};
    Object.seal(obj);
    obj.c = 3;
    console.log(obj.c); // undefined
    delete obj.a;
    console.log(obj); // {a:1,b:2} 删除失败
    obj.b = 'hello'
    console.log(obj); // {a:1,b: "hello"} 修改成功
    

    检测是否密封Object.isSealed(obj)

    (false是正常,true是已经密封了)

    Object.isSealed(obj);// true
    

    冻结的对象freeze

    Object.freeze不能增删改

    var obj = {a:1,b:2};
    Object.freeze(obj);
    obj.c = 3;
    console.log(obj.c); // undefined
    delete obj.a;
    console.log(obj); // {a:1,b:2} 删除失败
    obj.b = 'hello'
    console.log(obj); // {a:1,b:2} 修改失败
    

    检测是否冻结Object.isFrozen(obj)

    (false是正常,true是已经冻结了)

    Object.isFrozen(obj);// true
    

    相关文章

      网友评论

          本文标题:JavaScript防篡改对象

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