对于/在探针中。 object.variable和object [variable]有什么区别?

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

为什么我们要使用这样的代码:

     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 + " ";   }

,它返回:未定义未定义未定义。

我想这是一件很基本的事情,但是我不得不问,因为我找不到合适的答案。提前谢谢!

for-loop object
2个回答
0
投票

您应该检出数据结构。您使用变量student创建哈希表。因此,您可以像student[name]一样使用方括号来调用内部变量(键-值对)。第二个student.name表示您正在调用类的方法,而您没有该方法。


0
投票

object.somethingobject[something]的用法在不同的语言中有所不同,并且JavaScript在这方面特别宽松。此处最大的区别在于,在object[something]中,something必须引用与object中的键相对应的字符串。因此,如果您有something = 'myKey',并且myKeysomething中键的名称(因此object = {'myKey': 'value', ...}),则将获得value。如果使用object.something,则要求JavaScript在object中查找名称为key的键。即使编写something = 'myKey',使用点也表示您正在对象的范围内查找,从而使程序中的变量有效地不可见。

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