我想知道我是否可以使用我传递给函数的变量作为参数作为“文字”(我不知道更好的方式来描述问题,也许这个例子会清理一下):
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
}
所以我想将我定义为banana
或minion
的任何内容传递给'文字',以便它会显示为createjs.Tween.get(yellow, {override: true}).to({yellow: cute}, -(value + -yellow.cute) * speed, createjs.Ease.ease);
答案 0 :(得分:2)
您可以将名称作为字符串传递,并使用数组语法来访问该属性。
function ex(banana, minion) {
return banana[minion];
}
如果您希望对象的左侧也是一个字符串(例如banana
),您可以使用eval(banana)[minion]
,但这可能会在代码审查时引起一些人的注意。请注意这一点适用于属性和方法,例如eval(banana)[minion]()
,虽然我稍稍退一步,然后问为什么你需要做这种适度的疯狂东西:)
答案 1 :(得分:1)