2012-02-02 3 views
0

В приложении JavaScript, что я работаю у меня есть массив объектов:Как читать массивы JavaScript объектных литералов?

function Message(title, message) { 
    this.title=title; 
    this.message=message; 
} 

var MessageArray = new Array(); 
MessageArray[0] = new Message("Some Title", "Some new message."); 

У меня есть вопрос, что мне нужно для отладки. Есть ли способ читать или обнюхивать текущие объекты в массиве, включая их свойства title и message? Я мог бы добавить еще одну функцию к мне с этими значениями, но если есть инструмент, который я мог бы использовать так же, как отладчик Visual Studio, то я хотел бы узнать об этом. Я взглянул на Firebug, но у него, похоже, нет этой возможности.

Чтобы быть ясным, я ищу отладчик, который позволит мне проверять любую переменную во время выполнения, а не только MessageArray на данный момент. Я нашел область переменных области действия Chrome, но, похоже, она отображает только скаляры, а не массивы!

+0

использование 'console.log (переменная)' – grc

ответ

1

Наиболее современные браузеры имеют встроенную консоль разработчиков со всеми функциональными возможностями обычного отладчика. Точки останова и переменный контроль. В хроме вы можете открыть его через меню инструментов или нажав f12.

Вы также можете использовать JavaScript Console.log();, чтобы регистрировать все, что хотите, на консоли разработчика. Это остановит вас, используя предупреждения, которые останавливают выполнение JavaScript, пока вы его предупреждаете.

В случае, если console.log(MessageArray[0].title, MessageArray[0].message); распечатает заголовок и сообщение на консоль.

EDIT:

Вот снимок экрана консоли внутри хром. Показывая, что я создаю ваши объекты, а затем взаимодействую с ними через консоль.

enter image description here

+0

Спасибо Decad, однако я ищу способ проверить переменные из браузера, а не добавлением дополнительного кода Javascript. – dotancohen

+0

Если вы не хотите console.log, это нормально. Встроенные инструменты разработчика позволяют вам проверять переменные, устанавливать точки останова, выполнять сквозной код и многое другое. –

+0

Да, но я не могу найти инструмент, который позволит мне увидеть, какие литералы объектов находятся в 'MessageArray'. В инструментах Chrome и Firebug отображаются только строки и примитивы. – dotancohen

0

Все современные браузеры (IE 7+, Firefox, Chrome, Opera) имеют отладки (разработчик) консоли, поэтому попробуйте использовать его в качестве классического отладчика

IE отладки консоль тоже от Microsoft, поэтому постарайтесь использовать его - и Firebug может сделать это (попробуйте WATH MessageArray - вы найдете все там его)

+0

Спасибо. Я пытаюсь отлаживать Firefox и Chrome, поскольку IE не запускается на моей платформе. Как смотреть (я полагаю, это то, что вы имели в виду, есть опечатка) массив? В Chrome я обнаружил область переменных области, но, похоже, он отображает только скаляры, а не массивы! – dotancohen

+1

http://code.google.com/chrome/extensions/tut_debugging.html - здесь, см. номер 4, есть массив в переменных Scope, искать ошибку smwhere else (недопустимое присвоение, которое будет убивать массив и т. д.) – SergeS

0

вы можете обратиться к этим свойствам, например, так: отладчик

MessageArray[0].title  
MessageArray[0].message 
+0

Спасибо, я ищу отладчика, который позволит мне проверить любую переменную в время выполнения, а не только MessageArray. – dotancohen

0

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

0

В вашем случае вы можете прочитать заголовок и сообщение сохраненного Message объекта так:

var title = MessageArray[0].title; 
var message = MessageArray[0].message; 

Чтобы получить заголовок и сообщение каждого объекта в массиве, просто сделать:

for (var i=0; i<MessageArray.length; i++){ 
    // here MessageArray[i].title is the current title 
    // here MessageArray[i].message is the current message 
} 
Смежные вопросы