Можешь объяснить различия между `Object.preventExtensions()`, `Object.seal()` и `Object.freeze()` с точки зрения того, какие операции они разрешают или запрещают над свойствами объекта? — ДейлиПреп