Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как сделать переменную не изменяемой? (https://javascript.ru/forum/misc/27742-kak-sdelat-peremennuyu-ne-izmenyaemojj.html)

9xakep 23.04.2012 17:55

Как сделать переменную не изменяемой?
 
Такая задача:
var m = [1,2,3,4,5]
var m1 = m
m[1] = 'aaaa'
alert(m1)

Как сделать m1 равной m, но не зависимой от нее?

devote 23.04.2012 18:11

var m = [1,2,3,4,5]
var m1 = Array.prototype.slice.call( m );
m[1] = 'aaaa'
alert(m1)
alert(m)

bes 23.04.2012 19:36

Цитата:

Сообщение от 9xakep
Как сделать m1 равной m, но не зависимой от нее?

Если m1 равно m, это значит, что эти переменные хранят ссылку на один и тот же массив, если вы хотите сделать их независимыми, это значит вы хотите просто скопировать содержимое одного массива в другой (например, циклом, или методом slice, как предложил, devote).
Другое дело, если вы в этом вопросе захотели узнать как сделать зависимыми все элементы двух массивов, кроме одного из этих элементов.

Octane 23.04.2012 20:17

Цитата:

Сообщение от devote
var m = [1,2,3,4,5]
var m1 = Array.prototype.slice.call( m );

var m1 = m.slice();
;)

А еще, 9xakep, рекомендую прочитать: http://alljs.ru/articles/array/concat#clone

devote 23.04.2012 20:24

Цитата:

Сообщение от Octane
var m1 = m.slice();

ну да тупнул :)

9xakep 23.04.2012 21:09

Всем спасибо.

Octane 24.04.2012 20:59

Когда же ты эволюционируешь хотя бы в Слоубро?! :D


Часовой пояс GMT +3, время: 04:14.