美文网首页
Object.freeze()

Object.freeze()

作者: SophieRabbit | 来源:发表于2022-07-04 11:15 被阅读0次

模拟Object.freeze()

function myFreeze(obj) {

    Object.seal(obj);  // Object.seal()方法可以让对象不能被扩展、删除属性等等

    let p;

    for (p in obj) {

        if (obj.hasOwnProperty(p)) {

            Object.defineProperty(obj, p, {writable: false});   // 让对象不能添加修改属性

            myFreeze(obj[p]);

            }

        }

    }

}

定义一个不可被修改的对象要用到Object.freeze()。它的作用是冻结一个对象,被冻结的对象有以下几个特性:

不能添加新属性

不能删除已有属性

不能修改已有属性的值

不能修改原型

不能修改已有属性的可枚举性、可配置性、可写性

相关文章

网友评论

      本文标题:Object.freeze()

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