zoukankan      html  css  js  c++  java
  • JavaScript防篡改对象

    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
    
  • 相关阅读:
    蓝奏云的链接打不开
    数据链路层
    markdown(md)
    物理层
    计算机网络概述
    86五笔学习笔记
    Ubuntu初次使用的问题
    Hello Word!
    快速创建Flask Restful API项目
    Ubuntu环境下部署Django+uwsgi+nginx总结
  • 原文地址:https://www.cnblogs.com/firefly-pengdan/p/13213725.html
Copyright © 2011-2022 走看看