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()。它的作用是冻结一个对象,被冻结的对象有以下几个特性:

不能添加新属性

不能删除已有属性

不能修改已有属性的值

不能修改原型

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容