Доступ к объектам Javascript - PullRequest
2 голосов
/ 27 декабря 2010

Я использую Comet Push Engine, называемый APE (Ajax Push Engine), и всякий раз, когда я получаю событие в реальном времени, я получаю его в объекте JavaScript, называемом «raw».

Так, если, например, если необработанный объект содержит значение 'location', я могу напечатать 'raw.location', и он даст мне значение,

alert(raw.location);

Так что у меня есть еще одинобъект с именем currentSensor, который содержит значение, подобное этому (в моем примере оно будет содержать строку 'location'):

currentSensor.value

Как программно использоватьпеременная currentSensor.value для доступа к необработанному объекту?Я пробовал это:

var subsensor = currentSensor.sensorKey;

, а затем

alert(raw.subsensor);

Но я продолжаю получать неопределенный, потому что необработанный объект не содержит ключ под названием "subsensor" его фактически "местоположение".Я надеюсь, что это имеет смысл!

Спасибо!

Ответы [ 3 ]

5 голосов
/ 27 декабря 2010

При использовании точечной нотации вы используете буквальное имя свойства.Если вы хотите использовать строку, используйте квадратные скобки.

foo.bar === foo['bar'];

Строки могут быть переменными.

baz = 'bar';
foo.bar === foo[baz];
3 голосов
/ 27 декабря 2010

как это:

console.log(raw[currentSensor.value]);
1 голос
/ 27 декабря 2010

Вот, пожалуйста:

alert(raw[subsensor]);

Синтаксис точки не может помочь вам, когда вам нужен доступ к переменным индексам. Вам нужно использовать метод доступа к массиву.

Примечание. Метод точечного доступа является просто синтаксическим сахаром и в действительности нигде не нужен, но он полезен для удобства чтения кода.

Для вашего развлечения:

"1,2,3"["split"](",")["join"]("|")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...