深入理解 JavaScript 属性描述符与对象冻结从 Object.defineProperty 出发,梳理 configurable、enumerable、writable 以及 preventExtensions、seal、freeze 的区别与使用场景。