变量为'文字'

时间:2013-06-24 08:54:13

标签: javascript

我想知道我是否可以使用我传递给函数的变量作为参数作为“文字”(我不知道更好的方式来描述问题,也许这个例子会清理一下):

banana = yellow;
minion = cute;

function ex(banana, minion) {
    banana.minion;
}

// What I want is: yellow.cute

修改 我想我可能没有问过我的意思。对不起,我很抱歉。这是可能澄清事物的实际代码。

function ex(banana, minion){
    createjs.Tween.get(banana, {override: true}).to({banana: minion}, -(value + -banana.minion) * speed, createjs.Ease.ease);
console.log(banana); // returns 'yellow'
console.log(minion); // returns 'cute'
console.log(banana.minion); // returns 'undefined'
console.log(banana[minion]); // returns 'undefined' too
}

所以我想将我定义为bananaminion的任何内容传递给'文字',以便它会显示为createjs.Tween.get(yellow, {override: true}).to({yellow: cute}, -(value + -yellow.cute) * speed, createjs.Ease.ease);

2 个答案:

答案 0 :(得分:2)

您可以将名称作为字符串传递,并使用数组语法来访问该属性。

function ex(banana, minion) {
  return banana[minion];
}

如果您希望对象的左侧也是一个字符串(例如banana),您可以使用eval(banana)[minion],但这可能会在代码审查时引起一些人的注意。请注意这一点适用于属性和方法,例如eval(banana)[minion](),虽然我稍稍退一步,然后问为什么你需要做这种适度的疯狂东西:)

答案 1 :(得分:1)

使用bracket notation代替dot notation作为member operator

 banana[minion];