Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.09.2012, 20:54
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

Все массивы являются объектами...
Тогда почему к этому объекту я не могу применить метод push ?
alert("Колличество элементов: "+window.localStorage.length);
var Storage=window.localStorage;
Storage.push='Тест';
Ответить с цитированием
  #2 (permalink)  
Старый 05.09.2012, 20:58
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Все массивы являются объектами... -
Но не все объекты массивы
метод push метод массива .но не метод родительского класса объект
Ответить с цитированием
  #3 (permalink)  
Старый 05.09.2012, 21:11
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

Вы всегда можете одолжить метод push у прототипа массива, только работать не будет, ибо нужен максимальный числовой индекс, что бы плюсовать-а такого нет.
Ответить с цитированием
  #4 (permalink)  
Старый 05.09.2012, 21:58
Аспирант
Отправить личное сообщение для vitorrio Посмотреть профиль Найти все сообщения от vitorrio
 
Регистрация: 27.08.2012
Сообщений: 69

Ну так и что как быть? Я конечно могу сделать так: Сначала узнать последний элемент методом length, потом на +1 ячейку добавлять новые значения, А если сначала загонять все значения storage в массив там уже через метод push а потом этот же массив снова перезаливать в storage - так сработает?
Ответить с цитированием
  #5 (permalink)  
Старый 06.09.2012, 02:10
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

На самом деле вся суть при работе с обычным объектом в length.
Например это:
var obj = {
	0 : 'zero',
	1 : 'one',
	length : 2,
	foo : 'bar'
};

[].push.call(obj, 'pushed');

alert( JSON.stringify(obj) );

будет работать. Но не везде.

А localStorage это отдельная вещь, хотя в фф например тоже проблем нет:
alert(localStorage.length);

[].push.call(localStorage, 'pushed');

alert(localStorage.length);


Другое дело что length в localStorage считает все добавленные элементы, а значит если там есть пары ключ - значение, то push будет происходить некрасиво, т.к. опирается на length.
__________________
29375, 35

Последний раз редактировалось Aetae, 06.09.2012 в 02:21.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить загружены ли все картинки браузером Aderba jQuery 13 29.05.2014 14:18
не могу открыжить все чекбоксы нажатием одного nenastiy Events/DOM/Window 11 23.05.2010 17:50
Получить все инпуты по заданоой маске nws Общие вопросы Javascript 2 09.09.2009 01:46
А где все пишем Анастасия Лондонова Internet Explorer 3 06.04.2009 06:00
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37