Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Создать объект из строчек (https://javascript.ru/forum/events/10538-sozdat-obekt-iz-strochek.html)

Hagrael 08.07.2010 18:31

Создать объект из строчек
 
Вот мне надо создать объект, а его имя я должен взять из строковых переменных. Допустим, переменная "a" хранит в себе первую половину названия объекта, а переменная "b" - вторую. А мне надо их совместить и создать из них объект. Как мне это сделать?

Octane 08.07.2010 18:37

Используйте объект и добавляте в него свойства динамически:
var obj = {};

obj[a + b] = {};


Ну если сильно надо прямо в контексте выполнения создать, то:
eval("var " + a + b + " = {};");

Но так лучше не делать.

Hagrael 08.07.2010 18:40

И ещё один попутный вопрос:
зачем писать
"element.removeEventListener(имя_события , 'ФУНКЦИЯ ЭТОГО СОБЫТИЯ', false)".
Зачем писать функцию этого события, когда у одного события у одного элемента может быть только один обработчик?!

Hagrael 08.07.2010 18:41

Octane,
я вас не очень понял.

Sweet 08.07.2010 18:41

var a = 'ass', b = 'hole'
window[a+b] = 'Oh nooo!!!'
alert(asshole)

Sweet 08.07.2010 18:46

Цитата:

Сообщение от Hagrael
Зачем писать функцию этого события, когда у одного события у одного элемента может быть только один обработчик?!

Вовсе и не "только один".

Octane 08.07.2010 18:47

Цитата:

Сообщение от Hagrael
я вас не очень понял.

Ну что я могу сказать, догоняйте, читайте статьи, тратить время на объяснение основ языка не буду.

Цитата:

Сообщение от Hagrael
может быть только один обработчик

Обработчиков может быть сколько угодно, для этого и служит метод addEventListener/attachEvent.

Hagrael 09.07.2010 06:31

Octane,
как я понял из прочитанного, у каждого элемента (тэга, если хотите), может быть только один обработчик на одно событие.
<input type='button' onClick="alert('1')" onClick="alert('2')">
Такой код, как я понял, будет неправилен. Но за eval() спасибо большое!
Sweet,
также спасибо!

Hagrael 09.07.2010 07:18

Хотя когда я попробовал добавить несколько addEventListener, и они все сработали!

Hagrael 09.07.2010 07:24

А event.target - это объект, на котором произошёл в последний раз щелчок? Если во время выполненияя функции ЛКМ не будет нажата, то чему будет равно event.target?


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