'这' vs var与JavaScript中的对象中的名称/值对

时间:2018-04-14 15:44:07

标签: javascript object variables this

我试图了解下面三个版本代码的不同之处,具体来说是:

1)为什么'这个'如果不在这种情况下使用,那么与该对象无关?

2)为什么我不能在这个对象中定义一个var?

3)我必须在这样的对象中命名/值对吗?

如果可能的话,而不是在JavaScript中说这样做,而不是......',请你改为给出理由(简单来说可能),例如: '这条线不起作用的原因是因为......'。

感谢:)

// 1)
var dog = {this.name = "fido" } // SyntaxError: Unexpected token .

// 2)
var dog = { var name = "fido" } // SyntaxError: Invalid shorthand property initializer

// 3)
var dog = { name: "fido" } // All good.

1 个答案:

答案 0 :(得分:1)

  

1)为什么'这个'如果不在此上下文中使用,则与对象无关?

因为this基本上是一个绑定到函数的自动标识符(但不是"箭头函数")或全局范围。它与对象文字语法之间根本没有关系。

  

2)为什么我不能在这个对象中定义一个var?

因为JS中的var语法专门用于局部变量,而不是用于对象属性。语言设计者决定使语法完全不同。

这可以在局部变量和对象属性之间创建简单,直观的区别。

  

3)我是否必须在这样的对象中命名/值对?

还有其他语法可能性,但通常是的,使用对象文字初始值设定项定义对象时,使用键/值对。