为了账号安全,请及时绑定邮箱和手机立即绑定

求解释每行代码的意思。。。

能不能注释一下这里每行代码什么意思??看不懂= =,用的是《JS高级程序设计》,没看到相关内容,,,http://img1.sycdn.imooc.com//56e9774d0001c74e18000795.jpg

正在回答

1 回答

第一句是声明obj对象

第二句是指obj.1=1这个意思,但是1是不合法的标识符,用点是不行的,用[]进行引用才有,例如:obj[x] 等于obj.x

第三句也是 obj.1=2,由于上面有1这个属性了(上面的obj[1] 是等于第二行的obj['1']),,所以将上面的obj.1=1覆盖了,下面的obj属性中就为Object[1:2];

到第四句说的 就是obj对象中的属性,为Object[1:2]

这样上面一解析你应该大概就清楚了不少,那下面也是同理

第五句也是同理 声明对象obj[{}]=true;

第六句 其实跟上面的一样,JavaScript会进行tostring处理,既然toString了,obj[{}] 是等于obj[{x:1}]

俩个是同一个属性

第7句 就是将整个属性输出 将上面的obj.[1]属性输出,也将下面的obj.[{}]属性输出,所以是[1:2,[object Object]]:true

如果你满意的话,给我个好评,我挺喜欢好评的 =——=



15 回复 有任何疑惑可以回复我~
#1

Helianthuserin 提问者

非常感谢!
2016-03-17 回复 有任何疑惑可以回复我~
#2

暖日晴风

请问一下,为什么obj[{}]和obj[{x:1}]是同一个属性呢?我试了下,无论后面再添加比如说obj[{y:2}] = true,输出永远是Object {1: 2, [object Object]: true}。我不是很理解,谢谢!
2016-04-28 回复 有任何疑惑可以回复我~
#3

不知谁占用了本大人的名字 回复 暖日晴风

怎么说呢,我并没有说obj[{}]和obj[{x:1}]是同一个属性,真的不是一个属性,你理解错了方向了,其实很简单的, 其实我转换一下给你看,这只是为了形象写的,你实测是不成功的 上面的总结果:obj.1=2; 下面的总结果为:obj.{x:1}=ture 注意x:1是对象 就是说显示的是: [object Object]: true,这是对象的表现方式。 我们就有俩个属性了,所以最后输出的是{1: 2, [object Object]: true}。
2016-04-28 回复 有任何疑惑可以回复我~
#4

不知谁占用了本大人的名字 回复 暖日晴风

哦,我看错了,你想问的不是这个,是问其他的你再添加的时候,为什么只有这一个属性显示在这,是因为前面的被刷新掉了
2016-04-28 回复 有任何疑惑可以回复我~
#5

ZTON 回复 不知谁占用了本大人的名字

我和它有同样的疑问,我的意思是,为什么他显示了{1: 2, [object Object]: true} 而不是{1: 2,{}: true, {x:1}: true},是不是{}和{x:1}字符串话后的后的值都是[object Object], 所以Key相同.
2016-07-07 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消

求解释每行代码的意思。。。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信