设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3123|回复: 2
打印 上一主题 下一主题

[交流讨论] 一个关于js的赋值问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
245
在线时间
219 小时
注册时间
2015-9-24
帖子
166
跳转到指定楼层
1
发表于 2016-1-7 15:47:21 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
JAVASCRIPT 代码复制
  1. var a={n:1};
  2. var b=a;
  3. a.x=a={n:2};
  4. console.log(a.x);//-->undefined
  5. console.log(b.x);//-->[object Object]


就是以上的代码……已经被绕晕

Lv1.梦旅人

梦石
0
星屑
65
在线时间
385 小时
注册时间
2007-7-27
帖子
4106

开拓者

3
发表于 2016-1-7 15:58:58 手机端发表。 | 只看该作者
a -> obj1
b -> obj1
obj1.x -> a -> obj2

这样你能明白吗
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2016-1-7 15:57:07 | 只看该作者
本帖最后由 taroxd 于 2016-1-7 15:58 编辑

// 注释中的等号表示「相等」
var a={n:1};  // a = {n: 1}
var b=a;      // a = b = {n: 1}
a.x=a={n:2};  // a: {n: 2}, b: {n: 1, x: {n: 2}}, a = b.x
console.log(a.x);
console.log(b.x);

点评

因为 b = a,所以第三行的 a.x 就相当于 b.x。你把第三行的 a.x 改成 b.x ,看看明白了吗?  发表于 2016-1-7 16:32
为什么x: {n: 2}……  发表于 2016-1-7 16:08
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-30 05:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表