Object.freeze()

模拟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())