Javascript:使用对象';s字段';s值来确定另一个对象文字';s字段';姓名
我想在使用文字符号创建另一个对象时使用对象的字段值:Javascript:使用对象';s字段';s值来确定另一个对象文字';s字段';姓名,javascript,Javascript,我想在使用文字符号创建另一个对象时使用对象的字段值: var T = { fieldName : 'testField' }; /* // Doesn't work. var test = { T.fieldName : 'value' }; */ // Does work. var test = []; test[T.fieldName] = 'value'; alert(test.testField); // test 但它不起作用。 有没有办法解决这个问题,或者使用
var T = {
fieldName : 'testField'
};
/*
// Doesn't work.
var test = {
T.fieldName : 'value'
};
*/
// Does work.
var test = [];
test[T.fieldName] = 'value';
alert(test.testField); // test
但它不起作用。有没有办法解决这个问题,或者使用方括号是唯一的出路 Upd.:已删除非工作代码
var T = {
fieldName : 'testField'
};
var dummy = T.fieldName; // dummy variable
var test = {
dummy : 'value'
};
alert(test.testField); // test
这不应该奏效。值“value”将存储在test.dummy中,而不是test.testField中。这样做的方法是:
var T = {
fieldName : 'testField'
};
// Does work.
var test = {};
test[T.fieldName] = 'value';
alert(test.testField); // alerts "value"
这就是你已经拥有的
这不应该奏效。值“value”将存储在test.dummy中,而不是test.testField中。这样做的方法是:
var T = {
fieldName : 'testField'
};
// Does work.
var test = {};
test[T.fieldName] = 'value';
alert(test.testField); // alerts "value"
这就是您已经拥有的您的“测试”变量是数组,而不是对象
您应该创建像“={}”这样的“测试”,而不是“=[]”您的“测试”变量是数组,而不是对象
您应该创建像“={}”这样的“测试”,而不是“=[]”一种可能的方法是
var T={
testField : 'testField'
};
eval ('var test = {' + T.testField + ':' + value + '}');
你把它做成一般的,像这样的东西
function MakeVar(varName,fieldToUse,valueToPass)
{
var res = 'var ' +varName+ '= {' + T.testField + ':' + value + '}'
eval(res);
}
var T={
testField : 'testField'
};
MakeVar('test',T.testField,'value');
var outt=test.testField;
希望这有帮助,一个可能的方法是
var T={
testField : 'testField'
};
eval ('var test = {' + T.testField + ':' + value + '}');
你把它做成一般的,像这样的东西
function MakeVar(varName,fieldToUse,valueToPass)
{
var res = 'var ' +varName+ '= {' + T.testField + ':' + value + '}'
eval(res);
}
var T={
testField : 'testField'
};
MakeVar('test',T.testField,'value');
var outt=test.testField;
希望这有帮助你没有试着运行你发布的代码,是吗?哎呀,它似乎对我有用。删除了错误的代码。你没有试着运行你发布的代码,是吗?哎呀,它似乎对我有用。删除了错误的代码。它似乎对我有用:)。测试并将其作为错误代码从问题中删除。它似乎对我有用:)。测试并将其作为错误代码从问题中删除。