2013-07-17 4 views
-3

Я пытаюсь объявить javascriptobject properties.Объявление свойства объекта объекта javascript

У меня

var myObj = {}; 
    var rowsCount, columnsCount, texts; 
    var temp = document.createElement('div'); 
    temp.innerHTML = tableData; //tableData is bunch of tables in html 

    var tables = temp.getElementsByTagName('table') 

    //use tables as array... 
    for(var i = 0; i<tables.length; i++){ 
     var table = tables[i]; 
     myObj.rowsCount = $('tr', table).length; 
     myObj.columnsCount = $('td', table).length/myObj.rowsCount; 
    } 

Вышеуказанные коды работают. Тем не менее, если удалить

var rowsCount, columnsCount, texts; 

код будет жаловаться rowsCount, columnsCount и texts не определены.

Однако в W3Cschool object страницы, они имеют

person=new Object(); 
person.firstname="John"; 
person.lastname="Doe"; 
person.age=50; 
person.eyecolor="blue"; 

и, кажется, прекрасно без объявления свойства первой.

Может кто-нибудь помочь мне здесь? Большое спасибо!

+2

-1, невозможно воспроизвести. Просто вставив этот код в консоль Chrome, с 'tableData' установите некоторую случайную строку и' var rowsCount, columnsCount, тексты, 'закомментировали и ... нет ошибки. Не вижу причин, по которым также должна быть ошибка. Предположительно, ваша проблема находится вне вашего вставленного кода. –

+0

Что вы подразумеваете под "* код будет жаловаться *"? Отправьте точное сообщение об ошибке. – Bergi

ответ

3

myObj.rowsCount не совпадает с rowsCountпеременная. Первый - это свойство объекта, другое - просто переменная (с тем же именем).

Если вы получаете эту ошибку (при условии, что это ReferenceError), это потому, что вы пытаетесь читать из переменной rowsCount (не myObj.rowsCount), когда она не существует. Это должно происходить в какой-то части вашего кода, которую вы нам не показывали.

+0

понимается. Я просто понимаю, что проблема в другом месте. Мне действительно нужно лечь спать сейчас ..... Спасибо! – FlyingCat

Смежные вопросы