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
    
  • 相关阅读:
    LNK2001: unresolved external symbol ... virtual ...
    pygments
    cygwin Mingw
    [转]__attribute__((format (printf, 2, 3))
    [转] C和C++混合编程
    [转]网络包的流转
    [转]程序是如何运行起来的
    [转]Makefile中 .PHONY的作用
    [转]makefile学习
    [转] makefile 中 = := ?= += 区别
  • 原文地址:https://www.cnblogs.com/firefly-pengdan/p/13213725.html
Copyright © 2011-2022 走看看