| 
	
		
 Не понятное поведение при копирование массива 
		
		
		
		Вроде все просто и понятно, но что то не так и не как не могу понять что 
	
console.log("Уровень " + Number + " загружен");
           if (!Levels[Number]) throw "Ошибка: Уровень не найден!";
           console.log("Рисование Уровня...");
           self.Current = Levels[Number];
           self.CurrentMatrix = self.Current.TextureMatrix.slice(0);// вот тут копируется массив 
           obj_draw = new Draw(self.Current, DrawCallback);// внутри функции  идет обращение к свойству CurrentMatrix
на прямую self.Current.TextureMatrix обращения к массиву нет ,обращение только к CurrentMatrix, но исходный массив все равно изменяется, уже час голову ломаю не могу понять почему...  | 
	
		
 самое странное, когда я создаю новую переменную и в нее копирую до каких либо действий с массивом все равно записуеться измененный массив... 
	 | 
	
		
 Цитата: 
	
 http://javascript.ru/Number  | 
	
		
 cyber, 
	Имхо связано со .slice() Скопируй вначале в переменную, var a = self.Current.TextureMatrix.slice(0); self.CurrentMatrix = a;  | 
	
		
 Deff, не помогло=( 
	 | 
	
		
 dmitriymar, спс поправил, но не один браузер не среагировал на эту ошибку... 
	 | 
	
		
 cyber, на понимаю, какой ответ ты хочешь получить, не показывая код функции-конструктора Draw. 
	 | 
	
		
 Цитата: 
	
 У тебя в self.Current.TextureMatrix ведь тоже объекты, небось тоже массивы? Их тоже нужно клонировать.  | 
	
		
 Мне кажется удачным копировать объекты через Object.create: 
	
var matrix = [[1]];
var matrix_copy = matrix.map(function ( x ){
  return Object.create( x );
});
matrix_copy[0][0] = 2;
alert( matrix[0][0], matrix_copy[0][0] );
 | 
	
		
 Цитата: 
	
 alert( Number ); в самом низу страницы http://sahart.ru/javascript/view_javaruk.php?id=2 Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 12:52. | 
		
  |