JavaScript对象点方法的困惑

问题描述 投票:0回答:1

在Javascript中,属性中的所有键都是字符串,对吗?因此,换句话说,

此代码:

var object = {
car: 'tesla'
};

和此代码相同:

var object = {
'car': 'tesla'
};

但是为什么这样,我可以使用car但不使用此键来访问object["car"]键:object[car]

换句话说,如果名为car的键已经被转换为字符串,为什么我需要将名为car的键括在引号中?

我读了此thread,但无法在这个特定问题上得到明确的答案。希望有人帮助。

javascript javascript-objects
1个回答
1
投票

object initializer内,identifier被当作属性名称。

括号表示法property accessors中使用的值是一个表达式。

如果在表达式中使用标识符,则将其视为变量名。

由于您可以使用方括号表示法中的任何表达式,因此可以动态生成值:

object[function_that_returns_car(argument_from_local_scope)]

…这就是使括号表示法有用的原因。

© www.soinside.com 2019 - 2024. All rights reserved.