变量foo={n:2}; foo.x=foo={n:2}; console.log(foo.x);// 未定义
-
1 有趣的是test.x并没有定义, – 乔什·伯克 评论 2016年6月13日15:22 -
你想要这样的东西吗?x=foo,{n:2}; 不? – HudsonPH公司 评论 2016年6月13日15:31 -
@le_m想知道……你是怎么弄到这个问题的??:~) – 舒布 评论 2016年6月13日15:37 -
@Shubh我不久前投了赞成票:) – 列姆 评论 2016年6月13日15:38 -
@le_m太棒了!! 最后我有一个很好的问题要加书签:) – 舒布 评论 2016年6月13日15:45
3个答案
foo.x=foo={n:2};
foo.x=(foo={n:2});
图形化解释
变量foo={n:2};
foo.x=foo={n:2};
控制台.log(foo.x);
-
1 -
2 -
1
变量foo={n:2} //foo:对象{n:2} //foo.x:未定义 foo.x=3 //foo:对象{n:2,x:3} //foo.x:3 foo.x=foo //foo:对象{n:2,x:对象{n:20,x:Object(递归)}} //foo.x:对象{n:2,x:对象{n:20,x:Object(recursive)}} foo.x=foo={n:2} //foo:对象{n:2} //foo.x:未定义