首页 > 解决方案 > 在javascript中从用户获取变量的名称

问题描述

我有一个名为“汽车”的对象:

function car(name) {
    this.name = name;
    this.position= 0;
}

我从用户那里得到汽车的数量:

let nubmerOfCars = +prompt("Input Number of Casr")

并根据用户输入的名称创建汽车,最后将汽车推入数组:

for (i = 0; i < nubmerOfCars; i++) { 
    let nameCar = prompt("Input name of car no." + `${i+1}` + ":");
    let temp = new car(nameCar);
    temp.name = nameCar;
    nameCar=temp;
    carsArray.push(nameCar);
    carsArray.push(temp);
}
// user entered a,b,c for cars name
carsArray=[car{name:a},car{name:b},car{name:c}] // for 3 cars

但是,我想为每辆车创建一个带有用户输入名称的变量,例如:

function car() { //remove names's key
        this.position= po;
    }
//user entered a,b,c for cars name
    let a = new car{...};
    let b = new car{...};
    let c = new car{...};

真的我想创建用户输入名称的变量我可以这样做吗?

标签: javascriptvariablesvarlet

解决方案


没有直接的方法可以将 javascript 本身命名的变量添加到本地范围。但通常全局作用域作为对象实例存在,这是可变的。就像window在客户网站 JS 上一样:

// set variable x using the window object
window.x = "This is the value of x";
// accessing window.x only writing x
alert(x); // will alert: This is the value of x

// use string to define a variable name
window["y"] = "test";
// accessing...
alert(y); // will alert: test

// using other variable to define variable name
window[y] = 123;
// accessing...
alert(test): // will alert: 123


推荐阅读