如何创建不可变对象

[广告:最高 ¥2000 红包]阿里云服务器、主机等产品通用,可叠加官网常规优惠使用 | 限时领取

module.exports = function deepFreeze (o) {

    Object.freeze(o);

    Object.getOwnPropertyNames(o).forEach(function (prop) {

        if (o.hasOwnProperty(prop) && o[prop] !== null && (typeof o[prop] === “object” || typeof o[prop] === “function”)

                && !Object.isFrozen(o[prop])) {

            deepFreeze(o[prop]);

        }

    });

    return o;

}

码中人 微信公众号