2012-08-22 60 views
1

这很简单,但我不知道我错在哪里。您能否让我知道我如何使用返回的数据。我一直在呼叫 favorites[0].name但我没有得到任何回应。如何访问此数组?

person.favourites=function(){ 
     return [ 
      { 
      'name'= 'Gmail', 
      'link'= 'www.gmail.com' 
      }, 
      { 
       'name': 'Facebook', 
       'link': 'www.facebook.com' 
      } 
     ]; 
    }; 
+0

你可以显示你的电话收藏夹的方法? –

+0

您在访问时正在使用'favorites [0] .name',而它被定义为'person.favourites'。还是它是一个错字?你能展示更多的代码吗? – naiquevin

+0

您是否称过“收藏夹[0] .name”或“favOrites [0] .name”? – zessx

回答

0

您需要通话你的功能,采用person.favourites(),而不是用person.favourites引用它:

console.log(person.favourites()[0].name); 
+0

这也适用。谢谢 – user1469174

4

favorites不是数组,而是返回数组的函数。你需要调用它:

var x = person.favourites(); 
alert(x[0].name) // gmail 
alert(x[1].link) // www.facebook.com 

你也可以改变你的定义:

person.favourites = [ 
    { 
     'name'= 'Gmail', 
     'link'= 'www.gmail.com' 
    }, 
    { 
     'name': 'Facebook', 
     'link': 'www.facebook.com' 
    } 
]; 

这样一来你可以访问person.favourites[0].name,例如。

+0

谢谢,我只是需要调用,因为你展示,它完美的作品。 – user1469174

+0

完美。非常感谢大卫 – user1469174

0

如果你真的想你可以在分配的过程中调用它的annonymous函数创建person.favourites

person.favourites=(function(){ 
     return [ 
      { 
      'name': 'Gmail', 
      'link': 'www.gmail.com' 
      }, 
      { 
       'name': 'Facebook', 
       'link': 'www.facebook.com' 
      } 
     ]; 
    })(); 
+0

非常感谢。完美的作品 – user1469174