2016-10-21 13 views
0

Я уверен, что объект, который я консоль, имел это значение. Код указан ниже.Почему я console.log объекта, он показывает объект, но когда я консоль Object.value, он показывает undefined

addLoadEvent(function(){ 
    console.log(toObj(1));   //shows an object; 
    console.log(toObj(1).name);  //shows undefined; 
    function toObj(name){ 
     var source_json = getCookie(name); 
     return JSON.parse(source_json); 
    } 
    function getCookie(name){ 
     var arr,reg=new RegExp("(^|)"+name+"=([^;]*)(;|$)"); 
     if(arr=document.cookie.match(reg)) 
     return unescape(arr[2]); 
     else 
     return null; 
    } 
}) 

What Console Showed

the object

+0

И если вы делаете toObj [0] .name – krasipenkov

+2

Квадратная скобка в начале указывает, что ваш 'toObj (1)' возвращает массив. Вы пытались «toObj (1) [0] .name'? – Phil

+0

@ krasipenkov, но это не массив .... – legend

ответ

1

Попробуйте

console.log(toObj(1)[0].name); 

Я думаю, что ваш Object на самом деле в массиве;

+0

Да, это массив. – legend

-1

попробовать это, чтобы увидеть все свойства объекта:

for(var key in toObj(1)){ 
    console.log(key+': '+toObj(1)[key]); 
} 

Вы также можете попробовать toObj(1)['name'], чтобы получить имя.

+0

Ваш первый фрагмент кода должен сохранить результат первого вызова 'toObj()' иначе, при последующих вызовах результаты могут отличаться. Кроме того, нет никакой разницы между 'toObj (1) .name' и' toObj (1) ['name'] ' – Phil

+0

рядом с синтаксисом нет разницы, правильно. Вот почему я предлагаю этот код. :) – Marcus

+0

@Glufu toObj (1) ['name'] показывает undefined, тоже – legend

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

  • Нет связанных вопросов^_^