1

如何将对象的属性设置为变量?该变量等于表单文本字段值。两者obj.property并在我显示对象时obj[property]给我一个。undefined errormycar

function auto(manufacturer,model,engine_size,year,color,price) 
{
    this.manufacturer = manufacturer;
    this.model = model;
    this.engine_size = engine_size;
    this.year = year;
    this.color = color;
    this.price = price;
}

var mycar = new auto();

var a = document.form.num1.value;
mycar.manufacturer = a;
mycar[manufacturer] = a;

对不起。这是我所有的代码http://jsfiddle.net/vzqjv/

我试图将我的对象属性设置为一个变量 a,它在经过一些验证后等于表单文本字段值,以查看它是否签出。

4

4 回答 4

1

mycar.manufacturer = a分配给nameda的属性。mycarmanufacturer

mycar[manufacturer] = a分配给与变量的值同名a的属性。你可能的意思是。mycarmanufacturermycar["manufacturer"] = a

于 2013-04-30T03:20:20.100 回答
1

第二种记法

mycar[manufacturer] = a;

应该

mycar["manufacturer"] = a;

第一个符号应该有效。您是否正在以我们看不到的方式修改 mycar?

我的猜测是未定义的错误实际上在这一行:

var a = document.form.num1.value;

这是正确定义的吗?

于 2013-04-30T03:22:52.900 回答
1

你还没有声明你的变量manufacturer,所以当你这样做时它是未定义的mycar[manufacturer] = a;。您需要定义它

var a = document.form.num1.value,
    manufacturer = "manufacturer";
mycar.manufacturer = a;
mycar[manufacturer] = a;

或使用引号:

var a = document.form.num1.value;
mycar.manufacturer = a;
mycar["manufacturer"] = a;
于 2013-04-30T03:23:08.453 回答
0

你没有给出汽车的定义。我猜你没有制造商的财产。另一种方法就是做

var mycar = {};
var a = document.form.num1.value;
mycar.manufacturer = a;
于 2013-04-30T03:22:43.157 回答