Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> var как названия ключа 
V
    Опции темы
neoks
Дата 19.10.2012, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Есть var переменная и в ней значение например
Код

var = 'String name';

И есть массив 
Код

var arr = {'Name Key': function(){  }};


Вопрос в том как мне сделать типа такого
Код

var = 'String name';
var arr = {var: function(){  }};

Что бы ключ не назывался var а назывался String name, облазил весь гугл и пока не че не нашел как не странно, неужели это не как не сделать, понимаю есть другой способ типа этого
Код

var = 'String name';
var arr = {};
arr[var] = function(){}


Но как-то переделывать все уже не хочется )
PM MAIL   Вверх
CruorVult
Дата 19.10.2012, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Код

var name = 'String name';
var arr = {};
arr[name] =  function(){  };


аа, не заметил(хотя ваш код немного не правильный, но это не суть)

Добавлено через 2 минуты и 24 секунды
По-другому никак

Это сообщение отредактировал(а) CruorVult - 19.10.2012, 15:29
PM MAIL Skype   Вверх
Aliance
Дата 19.10.2012, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Начнем с того, что arr в примере выше ни разу не массив. Это объект. Кто сомневается - может выполнить следующий код:
Код

var arr = {};
alert( typeof arr );


К свойствам объекта есть доступ как к элементам массива, сделано это в основном для 2 вещей:
- для доступа к свойствам с "неправильными названиями", например ключевым словам, или свойствам, начинающимся с цифры;
- как раз для ситуации, когда имя свойства находится в переменной (как раз то, что доктор прописал топикстартеру).

Так что выхода нет - нужно юзать такой подход ;-)

Подробнее об этом можно почитать у Кантона или на JavaScript Garden
PM MAIL WWW ICQ Skype   Вверх
CruorVult
Дата 19.10.2012, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Цитата(Aliance @ 19.10.2012,  15:35)
Начнем с того, что arr в примере выше ни разу не массив. Это объект. Кто сомневается - может выполнить следующий код:
Код

var arr = {};
alert( typeof arr );

К большому удивлению для некоторых
Код

var arr = [];
alert( typeof arr );


тоже не массив.
PM MAIL Skype   Вверх
Aliance
Дата 19.10.2012, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



В общем-то потому что в JS почти все является объектом.
Есть еще понятие класса:
Код

var arr = [];
Object.prototype.toString.call( arr ).slice(8, -1) // Array

var obj = {};
Object.prototype.toString.call( obj ).slice(8, -1) // Object

PM MAIL WWW ICQ Skype   Вверх
neoks
Дата 19.10.2012, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Эх жаль, придется так и оставить перевод )) лан спасиб что откликнулись )
PM MAIL   Вверх
CruorVult
Дата 19.10.2012, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 13
Всего: 28



Цитата(Aliance @ 19.10.2012,  16:12)
В общем-то потому что в JS почти все является объектом.
Есть еще понятие класса:
Код

var arr = [];
Object.prototype.toString.call( arr ).slice(8, -1) // Array

var obj = {};
Object.prototype.toString.call( obj ).slice(8, -1) // Object

оу, это изврат:)
Для определения массива лучше использовать Array.isArray(arr), как все нормальные фреймворки.


PM MAIL Skype   Вверх
ksnk
Дата 19.10.2012, 20:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(CruorVult @  19.10.2012,  19:00 Найти цитируемый пост)
Для определения массива лучше использовать Array.isArray(arr), как все нормальные фреймворки.

Вообще-то кошерным считалась такая проверка

Код

if(x instanceof Array) {
...
}



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.