-1

我想知道是否可以将传递给函数的变量用作“文字”的参数(我不知道描述问题的更好方法,也许该示例可以解决问题):

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);

4

2 回答 2

2

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

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

如果您希望对象的左侧也成为字符串(例如banana,您可以使用eval(banana)[minion],但这可能会在代码审查时引起一些注意。请注意,这适用于属性和方法,例如eval(banana)[minion](),尽管我会一步回过头来问问你为什么需要做这种适度疯狂的事情:)

于 2013-06-24T08:57:30.667 回答
1

使用括号表示法而不是点表示法作为成员运算符

前任

 banana[minion];
于 2013-06-24T08:58:36.457 回答