【发布时间】:2019-07-07 04:24:27
【问题描述】:
我正在学习 javascript,遇到了一些类似于以下代码的 Javascript 代码。似乎 carArrays 对象被转换为映射只是通过将数组分配给 carArrays[car1.year]。所以我对这段代码有很多疑问。
哪些 javascript 规则允许您这样做?
我认为
[]表示数组。如果 carArrays 现在是一张地图,为什么要使用方括号来索引它?我对 carArrays 成为地图的解释是否正确?或者这仍然被认为是具有键 '1999' 和 '2005' 的对象?
我的代码:
function car( make, model, year){
this.make = make;
this.model = model;
this.year = year;
}
let car1 = new car('bmw', '3series', 1999);
let car2 = new car('ford', 'crownvic', 1999);
let car3 = new car('honda', 'accord', 1999);
let car4 = new car('bentley', '5', 2005);
let car5 = new car('chevy', 'silverado', 2005);
let car6 = new car('toyota', 'rav4', 2005);
let carArrays = {};
carArrays[car1.year] = [car1, car2, car3];
carArrays[car4.year] = [car4, car5, car6];
console.log(carArrays);
【问题讨论】:
-
I thought [] means array.当然,但[]不在您发布的代码中。{}是一个对象字面量。obj[someVar]是括号符号,见stackoverflow.com/questions/4968406/… -
对象上的方括号符号表示正在分配或访问对象中的属性。在这种情况下,您将创建一个与
car1.year具有相同名称的新属性(即 1999),并在数组中分配值或 car1、car2、car3。其他属性也一样。 -
carArrays[car1.year],将计算“car1.year”的第一个值,然后将其分配为对象 carArrays 的键,然后评估右侧表达式并将其分配给此对象的键
-
为什么投反对票??这是一个问题……正如我所说的,我正在尝试学习 javascript。
-
您是否对
let carArrays = {};实际上在做什么感到困惑?如果您是 javascript 新手,这不一定是最容易上手的。
标签: javascript