2016-03-25 7 views
0

Я хочу защитить объект и попытаться const, как показано нижеузел переменной Const также изменить

const foo = {'test': 'content'} 
foo // {test: 'content'} 

foo['test'] = 'change' 
foo // {test: 'change'} 

Я не знаю, как правильно защитить объект как словарь, может кто-нибудь помочь мне?

спасибо за ваше время.

Отношения.

+0

Согласно _MDN_, 'Конст декларация создает только для чтения ссылки ценность. Это не значит, что значение, которое оно имеет, является неизменным, просто чтобы идентификатор переменной не мог быть переназначен. – Rayon

+0

@RayonDabre благодарит за ответ, как я могу защитить значение словаря? –

ответ

6

Как поясняет Район Дабр, const означает, что значение переменной не может быть изменено. Значение переменной foo в вашем примере не изменилось: это все тот же объект. Объект объект изменен.

Для того, чтобы сделать сам объект неизменен, вы можете использовать Object.freeze:

var foo = {'test': 'content'}; 
Object.freeze(foo); 
foo.test = 'change'; 
foo.test 
// => "content" 
+0

большое спасибо, проголосуйте :) –

Смежные вопросы