Javascript: это возможно? - PullRequest
       3

Javascript: это возможно?

0 голосов
/ 23 ноября 2010

Возможно ли это?

var [a+b] = something;

a : определено мной. пример: "объект"

b : переменная. например: "2"

Ответы [ 6 ]

2 голосов
/ 23 ноября 2010

Если вы пытаетесь установить значение, которое представляет собой комбинацию a и b, почему бы не сделать что-то вроде:

var obj = {};
obj[a] = {};
obj[a][b] = "something";

Не так коротко, как obj[a+b] = "something", ноэто более надежно, поскольку

a = "object"
b = "2"

и

a = "objec"
b = "t2"

неразличимы при использовании obj[a+b]

2 голосов
/ 23 ноября 2010

Убей меня, если я ошибаюсь, но похоже, что ты пытаешься динамически определять имена переменных, чтобы у тебя могло быть

var myVar1 = something;
var myVar2 = something;

И так далее.

AFAIK, вы не можете сделать это на JavaScript или любом декларативном языке.Ваш лучший подход, вероятно, будет использовать массивы в этом случае.Каковы ваши фактические драйверы для того, чтобы вам нужен подход, о котором вы спрашиваете?

2 голосов
/ 23 ноября 2010

Не уверен, что вы пытаетесь достичь.Вы не можете создать переменную, просто поместив строки в квадратные скобки, но вы можете использовать квадратные скобки для добавления пары имя / значение в объект.Например, если вы хотите добавить это значение в объект myNewObj, вы можете сделать что-то вроде этого:

var myNewObj = {};
myNewObj[ a + b ] = something;
2 голосов
/ 23 ноября 2010

Я не уверен насчет местных жителей, но для глобалов вы можете использовать window[a+b] для доступа к переменной.

1 голос
/ 23 ноября 2010

как остальные ребята здесь, я не совсем понимаю вашу цель здесь, но вы могли бы написать это:

var a ='te';
var b = 'st';
eval ('(' + a + b + ' = 3)');
alert (test); 
1 голос
/ 23 ноября 2010

Не могу не подумать, что у вас есть синтаксическая ошибка в приведенном выше фрагменте кода. Но если ваш вопрос состоит в том, чтобы назначить что-то динамическому расположению в массиве, то вы можете сделать это

Следуйте примеру кода ниже

var a = 5; 
var array = [];

function someFunction(b){
  array[a+b] = 'hello'
}


someFunction(5);
alert(array[10]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...