为什么我们要使用这样的代码:
let student = {name:"John", surname:"Doe", index:386754};
let text = "";
let x;
for (x in student) {
text += student[x] + " "; }
它会预览:John Doe 386754。
但是当我这样制定时:
let student = {name:"John", surname:"Doe", index:386754};
let text = "";
let x;
for (x in student) {
text += student.x + " "; }
,它返回:未定义未定义未定义。
我想这是一件很基本的事情,但是我不得不问,因为我找不到合适的答案。提前谢谢!
您应该检出数据结构。您使用变量student
创建哈希表。因此,您可以像student[name]
一样使用方括号来调用内部变量(键-值对)。第二个student.name
表示您正在调用类的方法,而您没有该方法。
object.something
与object[something]
的用法在不同的语言中有所不同,并且JavaScript在这方面特别宽松。此处最大的区别在于,在object[something]
中,something
必须引用与object
中的键相对应的字符串。因此,如果您有something = 'myKey'
,并且myKey
是something
中键的名称(因此object = {'myKey': 'value', ...}
),则将获得value
。如果使用object.something
,则要求JavaScript在object
中查找名称为key的键。即使编写something = 'myKey'
,使用点也表示您正在对象的范围内查找,从而使程序中的变量有效地不可见。