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



我试图了解以下三个版本的代码有什么区别,特别是:

1(为什么"这个"与对象无关,不应该在这个上下文中使用吗?

2( 为什么我不能在这个对象中定义一个变量?

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(为什么"这个"与对象无关,不应该在这个上下文中使用吗?

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

2( 为什么我不能在这个对象中定义一个变量?

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

这会在局部变量和对象属性之间创建简单的视觉区分。

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

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

最新更新