|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.08.2010, 19:20 | #1 |
Заблокирован
Регистрация: 26.07.2010
Сообщений: 160
|
Пару нюансов в масиве
Изучаю массивы JavaScript.
1)Скажите, если массив создаётся вот так: var z = ['красный','синий','голубой']; Переменная z первращается в объект конструктора Array? в отличи от такого создания var x = new Array(5,7,3,' Петя'); 2)Вот такой вариант у меня в коде встречается. Код:
Код:
Код:
|
03.08.2010, 20:12 | #2 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
1) Объявления
Код:
Код:
Код:
2) В природе нет такого зверя "объект конструктора", есть конструктор объекта, а переменной, стоящей слева от равно присваивается результат его работы, то бишь созданный объект. Функция ни во что не превращается, она принимает в качестве своего аргумента объект и работает с ним
Росли вроде умными, выросли дурнями... (c)А.Васильев
Последний раз редактировалось Greblin; 03.08.2010 в 20:14. |
03.08.2010, 20:28 | #3 |
Заблокирован
Регистрация: 26.07.2010
Сообщений: 160
|
Код:
создался пустой объект класса Array? Как может в функцию magazin передастся пустой массив хранящийся в объекте продукт? |
03.08.2010, 20:31 | #4 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
Эээ, а что мешает ему передаться? Ну пустой, ну и ладно
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
03.08.2010, 20:42 | #5 |
Заблокирован
Регистрация: 26.07.2010
Сообщений: 160
|
[codе]
var product = new Array(); //Это объект класса (не конструктора класса, а самого класса)Array,верно? Ведь экземпляр и объект это одно и тоже. [/code] После этой строки в части оперативной памяти - куче, создался объект. Вот здесь: Код:
products['рубашки'] = 46; Получается здесь создаётся массив с нуля и первый элемент массива будет products['рубашки']? Это ассоциативный массив как на пхп? Потом, когда мы написали Код:
и объект продукт как-то получает кол-во элементов и значения их? |
03.08.2010, 21:06 | #6 | |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
Не очень понимаю, что Вас смущает. То что глобальная переменная называется product, а локальная products? Или то, что изменения, применённые внутри функции, отразились и снаружи?
Цитата:
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
|
03.08.2010, 21:10 | #7 |
Заблокирован
Регистрация: 26.07.2010
Сообщений: 160
|
Меня смущает как может массив заполнится функцией.
|
03.08.2010, 21:20 | #8 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
Упрощённо говоря, параметры в js передаются по ссылке. Это значит, что параметр, который используется в функции, представляет собой всего лишь псевдоним реально существующей переменной. Никаких новых переменных не создаётся, все изменения применяются к переданной в качестве параметра переменной
P.S. На самом деле, стратегия передачи параметров в js хитрее. Почитать можно тут
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
03.08.2010, 21:31 | #9 |
Заблокирован
Регистрация: 26.07.2010
Сообщений: 160
|
Код:
Объект продукт передаётся в качестве аргумента функции магазин, а потом как появляются элементы со значениями в объекте продукт который является массивом? |
03.08.2010, 21:39 | #10 |
Меркантильный кю
Участник клуба
Регистрация: 02.02.2008
Сообщений: 1,001
|
Да, именно так. И в этом и состоит ответ на Ваш второй вопрос
Росли вроде умными, выросли дурнями... (c)А.Васильев
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поиск в масиве | Apis | Общие вопросы C/C++ | 2 | 12.09.2011 05:51 |
Задачка с перестановкой значений в двумерном масиве | sekator | Visual C++ | 2 | 28.07.2010 14:33 |
поиск в масиве | Apis | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 25.04.2010 23:36 |
ПОВТОР ЗНАЧЕНИЯ В МАСИВЕ | Slavik | Microsoft Office Excel | 11 | 27.01.2009 08:13 |