我试图了解下面三个版本代码的不同之处,具体来说是:
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.
答案 0 :(得分:1)
1)为什么'这个'如果不在此上下文中使用,则与对象无关?
因为this
基本上是一个绑定到函数的自动标识符(但不是"箭头函数")或全局范围。它与对象文字语法之间根本没有关系。
2)为什么我不能在这个对象中定义一个var?
因为JS中的var
语法专门用于局部变量,而不是用于对象属性。语言设计者决定使语法完全不同。
这可以在局部变量和对象属性之间创建简单,直观的区别。
3)我是否必须在这样的对象中命名/值对?
还有其他语法可能性,但通常是的,使用对象文字初始值设定项定义对象时,使用键/值对。