Что это за объект или это вообще объект? И как это работает? (JavaScript) - PullRequest
2 голосов
/ 13 июля 2011

Я работаю над виджетом Dashboard и наткнулся на код, который выглядит следующим образом:

var variableName = {
"SomeName":"someValue",
"someName": "another value",
};

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

Ответы [ 5 ]

5 голосов
/ 13 июля 2011

Это объектный литерал.Это примерно так:

var variableName = new Object();
variableName.SomeName = "someValue";
variableName.someName = "another value";
4 голосов
/ 13 июля 2011

Это пример литерала объекта .

Создает обычный объект с двумя свойствами.

1 голос
/ 13 июля 2011

Хотя в JavaScript он называется литерал объекта , в большинстве языков он действует как перечисление.

var messageState = {
  new: 0,
  read: 1,
  deleted: 2
};

Имея это, вы легко читаете способопределение состояния сообщения:

var message = GetMessage();
if (message.state == messageState.deleted) {
  alert('This message is deleted');
}

Это также простой способ организации функциональных частей в вашем файле JS.Если вы хотите использовать только один файл JS для всего сайта, что настоятельно рекомендуется для всех видов оптимизации, вы можете использовать его вместо написания нескольких различных функций:

var Message {
  sendMessage: function(msg) {
    // method to send msg
  },

  deleteMessage: function(msg) {
    // method to delete msg
  }
};


var Vote = {
  votePostUp: function(post) {
    // method to vote post up
  },

  votePostDown: function(post) {
    // method to vote post down
  }
};

И для вызова:

Message.sendMessage(theMessage);
Vote.votePostUp(myPost);
0 голосов
/ 13 июля 2011

То, на что вы смотрите - это ассоциативный массив (хеш-карта или словарь в некоторых языках). По сути, это массив, который связывает объект с другим объектом, как слово ассоциируется с его определением в реальном словаре.

Это также основная форма объектов JavaScript (они связывают имена функций с телами функций).

0 голосов
/ 13 июля 2011

Это объект JavaScript, созданный с литеральной нотацией объекта.

Вы можете получить доступ к его свойствам следующим образом:

variableName["SomeName"];

или

variableName.SomeName;

Вы также можете перебирать свойства указанного объекта (в произвольном порядке) с помощью цикла for...in:

for(var prop in variableName) {
    alert(prop + " = " + variableName[prop]);
}

Для превосходного руководства по работе с объектами JavaScript, прочитайте эту статью MDN по работе с объектами.

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