Что делает Object.freeze в vue.js?

Я слышал что он может как то блокировать или замораживать свойство, объясните плз что он делает, подоступнее)

Этот метод позволяет предотвращать изменение уже существующих свойств, и соответственно в Vue.js делает невозможным отслеживание изменений для системы реактивности в которую добавляются все свойства в data.

var ex = {
prop: 'Original message!'
}

Object.
freeze(ex)

new Vue({
el: '#app',
data: ex
})


var example = {
prop1: 'Original message!!!'
}


new Vue({
el: '#applic',
data: example
})

<div id="app">
{{ prop }}
<button
v-on:click="prop = 'Not original message!'">Изменить



<div
id="applic">
{{ prop1 }}
<button
v-on:click="prop1 = 'Not original message!'">Изменить

У нас есть два блока с разным айди, внутри каждого находится текст который выводит свойство Vue объекта, у каждого блока есть кнопка, при нажатии на которую происходит попытка изменить значение свойства.

В javascript блоке мы видим что мы объявляем объект со свойством который далее присваиваем в экземпляр Vue в data предварительно использовав на этом объекте метод Object.freeze(ex), далее создаем точно аналогичную конструкцию, только без Object.freeze(). Теперь запустив код в браузере видно, что свойство первого объекта нельзя изменить из за указанного выше метода, а свойства второго объекта спокойно меняются.