JavaScript オブジェクトへの変更を防止する方法

Object.preventExtensions() を使うことで、新しいプロパティが追加されることを防止します。

const person = {
	name: 'tamibouz'
}

Object.preventExtensions(person)

person.age = 34

personオブジェクトに対してageというプロパティを追加しようとしますが、Object.preventExtensions()によってプロパティは追加されずエラーで落ちます。

もしstrictモードで動かしている場合は、エラーが発生します。

'use strict'

const person = {
	name: 'tamibouz'
}

Object.preventExtensions(person)

person.age = 34 // Uncaught TypeError: Cannot add property age, object is not extensible