getting-started-with-javascript icon indicating copy to clipboard operation
getting-started-with-javascript copied to clipboard

对象里的变量命名和赋值过来的变量的命名为什么可以一样?

Open xugy0926 opened this issue 7 years ago • 2 comments

1. var name = "xiaoming";

2. var config = {
3.  name: name // 这样不会引起混淆吗?
4. }

xugy0926 avatar Aug 16 '17 04:08 xugy0926

上面的例子含有两个点需要特别注意。

  1. 第三行右边的name指的是第一行定义的变量name。
  2. 第三行昨天的name是对象config的一个属性。

第一行的变量name和第二行的config处理一个作用域区域。他们是平等并且不能重名的。

但第三行左边的name是config内部的一个属性,有了config的作用域保护就不会和第一行变量name混淆。

第三行右边的name只是作为值,并赋值给了config的属性name。他们之间毫无混淆的地方。 等号的昨天和右边是否重名不重要,只要能进行赋值即可。

xugy0926 avatar Aug 16 '17 08:08 xugy0926

明白了,一个是某个对象内部的其中一个属性名称,一个是之前被(声明)定义的变量名。谢谢老师!

tuyilang avatar Aug 28 '17 02:08 tuyilang