JavaScript 代码的概念性问题。请解释我得到的输出
JavaScript Conceptual Issue with a code. Please give an explanation for the output i am getting
我很难理解下面的代码,我在我不理解这个概念的地方发表了评论,究竟是怎么回事
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'
这只是在 javascript 中动态访问或分配对象属性的语法。
你可以把它想象成你在做:ob.name = 'at'
。
基本上,它正在访问对象 ob
的 属性。在本例中,正在访问和创建新属性。
循环获取每个索引值,并为每个 assign/create 使用该索引值的新 属性。
该方法是一种在对象中创建 属性 名称的动态方法。
ob['name'] = 'at';
ob.name = 'at'; // Just to illustrate
在这里稍微阅读一下文档 ->
JavaScript object basics - Learn web development | MDN
在JavaScript
中有两种访问对象属性的方法
var person = {
name: 'Jane'
}
person.name
// or
person['name']
// both return jane
在您的例子中,它遍历名为 ob2
的数组成员
该数组的第一个也是唯一的元素是一个字符串 name
并将其作为道具提供给该对象,如下所示
ob['name'] = 'at';
// or
ob.name = 'at';
何时使用方括号 ([]) 而不是点 (.)
如果您在运行时不知道 prop 名称,则需要使用括号,如果您知道,则可以选择点符号或括号
我很难理解下面的代码,我在我不理解这个概念的地方发表了评论,究竟是怎么回事
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'
这只是在 javascript 中动态访问或分配对象属性的语法。
你可以把它想象成你在做:ob.name = 'at'
。
基本上,它正在访问对象 ob
的 属性。在本例中,正在访问和创建新属性。
循环获取每个索引值,并为每个 assign/create 使用该索引值的新 属性。
该方法是一种在对象中创建 属性 名称的动态方法。
ob['name'] = 'at';
ob.name = 'at'; // Just to illustrate
在这里稍微阅读一下文档 ->
JavaScript object basics - Learn web development | MDN
在JavaScript
中有两种访问对象属性的方法var person = {
name: 'Jane'
}
person.name
// or
person['name']
// both return jane
在您的例子中,它遍历名为 ob2
的数组成员
该数组的第一个也是唯一的元素是一个字符串 name
并将其作为道具提供给该对象,如下所示
ob['name'] = 'at';
// or
ob.name = 'at';
何时使用方括号 ([]) 而不是点 (.) 如果您在运行时不知道 prop 名称,则需要使用括号,如果您知道,则可以选择点符号或括号