Имена Динамических Переменных JavaScript

Ok, поэтому я хочу создавать переменные, когда пользователь нажимает на код, каждый щелчок добавляет новую переменную. В настоящее время я использую jQuery и JavaScript я не могу сделать это на стороне сервера, это должно быть сделано в браузере.

newCount = document.getElementById('hello').innerHTML;
    $('.hello').click(function(){
        //set count fast enumeration
        newCount++;
        var hello + newCount = '<p>Hello World</p>';
    }); 

поэтому я хочу, чтобы переменные были hello1, hello2, hello3, hello4 и т. д.

6 ответов


Вы можете сделать это только с помощью скобочной нотации, Что означает, что вам нужно прикрепить переменные к чему-то.
Глобальная область будет window, так что это будет window['hello' + newCount], но загрязнение глобального пространства имен кучей случайных свойств не кажется хорошей идеей, поэтому использование объекта кажется лучше

var vars = {};
var newCount = parseInt($('#hello').html(), 10);

$('.hello').click(function(){
    newCount++;
    vars['hello' + newCount] = '<p>Hello World</p>';
}); 

alert( vars['hello1'] );

скрипка


в JavaScript (как я знаю) есть 2 способа создания динамических переменных:

eval Function
window object
eval:

var pageNumber = 1;
eval("var text" + pageNumber + "=123;");
alert(text1);
window object:

var pageNumber = 1;
window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);

для больше inforamtion как объявить и использовать динамические переменные в JavaScript?


Я бы просто использовать простой массив для хранения переменных. Тогда объект с индексом n будет переменной n и т. д..


можно использовать window

var window['hello' + newCount ] = '<p>Hello World</p>';

дополнительно..

newCount = document.getElementById('hello').innerHTML;
    $('.hello').click(function(){
        //set count fast enumeration
        newCount++;
        var window['hello' + newCount ] = '<p>Hello World</p>';
        alert(window['hello' + newCount ]);
    }); 

var newCount = 0;
$('#btn').click(function(){

    newCount++;
    $('#hello').html('hello' + newCount);
}); 

jsfiddle


самый простой способ

var types = {};

for(var i=1; i<=3; i++){
types["ashish"+i] = 'The value of dynamic variable, val';
}