推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
mopig

菜鸟提问 Javascript ~

  •  
  •   mopig · Nov 24, 2013 · 4558 views
    This topic created in 4732 days ago, the information mentioned may be changed or developed.


    提示 firstName undefined,实际 friends 里边的 i 是有 firstName 的。
    10 replies  •  1970-01-01 08:00:00 +08:00
    aveline
    aveline
    Nov 24, 2013❤️1
    1
    用 friends[i]。
    clippit
    clippit
    Nov 24, 2013❤️1
    2
    friends[i]
    clippit
    clippit
    Nov 24, 2013
    3
    @aveline 啊被抢沙发了……
    housne
    housne
    Nov 24, 2013❤️1
    4
    . 只能访问到关键字,很明显这里的 i 是变量,要用 []
    mopig
    mopig
    OP
    Nov 24, 2013
    5
    @aveline
    @clippit
    @housne 嗯,开始不清楚这两个的区别。感谢已发
    dorentus
    dorentus
    Nov 24, 2013❤️1
    6
    >> for(var i in friends)
    >> 第一次循环时,i 的值是字符串 'bill'
    >> friends.i 等价于 friends['i']
    >> 而你想要的是 friends.bill,等价于 friends['bill']
    mopig
    mopig
    OP
    Nov 24, 2013
    7
    @dorentus friends.bill, friends['bill'] 这个是等价的吧,只是在加载 i 的时候变成了:friends.'bill' ?
    bombless
    bombless
    Nov 24, 2013❤️2
    8
    噗……楼主还是没习惯。

    a.i 就是 a['i']

    那你想,你要得到 friends.bill 那就应该是 friends['bill'] ,想得到 friends.i 就是 friends['i']
    你写的是 friends.i ,等价于 friends['i'] ,它显然和 friends['bill'] 不是同一个东西。

    完全不存在friends.'bill'这种东西。

    这里也不存在“加载i的时候”怎么样了,因为 friends.i 永远都是 friends['i'] 不可能变成 friends['bill']
    mopig
    mopig
    OP
    Nov 24, 2013
    9
    @bombless 茅塞顿开,非常感谢
    xiezi
    xiezi
    Nov 25, 2013
    10
    这个应该的错误信息是"Cannot read property 'firstName' of undefined",这说明friends.i是没有定义的,而不是你写的“firstName undefined”。@bombless写的很清楚了!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1446 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 11:30 · PVG 19:30 · LAX 03:30 · JFK 06:30
    ♥ Do have faith in what you're doing.