代码的JavaScript概念问题。请说明我得到的输出

时间:2019-03-16 16:23:39

标签: javascript arrays node.js ecmascript-6 es6-promise

我在理解下面的代码时遇到了困难,我在不理解概念的地方加了一个注释,到底发生了什么

var ob = {};
var ob2 = ['name'];
for(var op of ob2)
{
      ob[op]='at'; // here i dont understand what is happening, why here is an array type brackets

}
console.log(ob);

OUTPUT IS


name:'at'

3 个答案:

答案 0 :(得分:1)

那只是在javascript中动态访问或分配对象属性的语法。

您可以将其视为您正在做的事情:ob.name = 'at'

答案 1 :(得分:0)

基本上,它正在访问对象ob的属性。在这种情况下,就是访问和创建新属性。

循环将获取每个索引值,并使用该索引值为每个分配/创建一个新属性。

该方法是在对象中动态创建属性名称的方法。

ob['name'] = 'at';
ob.name = 'at'; // Just to illustrate

-> JavaScript object basics - Learn web development | MDN

处阅读一些文档

答案 2 :(得分:0)

有两种方法可以访问JavaScript中的对象属性

[:,:]
在您的情况下,

遍历名为var person = { name: 'Jane' } person.name // or person['name'] // both return jane 的数组成员 该数组的第一个也是唯一的元素是字符串ob2,并将其作为道具提供给该对象,就像下面的

name

何时在点(。)上使用方括号([]) 如果您在运行时不知道prop名称,则需要使用方括号,如果知道,则可以选择点符号或方括号