2013-06-24 67 views
-1

我想知道我是否可以使用作爲參數傳遞給函數的變量作爲「文字」(我不知道更好的方式來描述問題,也許這個例子會清除一些東西) :作爲'literals'的變量

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

+0

你的功能在做什麼?它會返回任何東西嗎? – mohkhan

+0

您是否希望將其作爲字符串變量返回? – Curt

+0

所以你只是想在'ex'功能裏面叫'香蕉(奴才)'......? – CBroe

回答

2

您可以通過名稱作爲一個字符串,並使用數組語法訪問財產。

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

如果你想要一個物體的左側是一個字符串,以及(如banana,你可以使用eval(banana)[minion]但是,很可能在代碼審查提出幾個眉毛,注意這兩個特性和方法,例如eval(banana)[minion](),但我會退後一步了一下,問你爲什麼要做這種適度瘋狂的東西:)

+0

對不起,我沒有更清楚。 'minion'應該引用一個方法。所以這個函數會傳遞我傳給'minion'的任何名字作爲'banana'的方法。希望這更有意義。 – AKG

+1

@AKG:方法或屬性,沒關係。您可以對方法使用相同的想法。 – Jakob

+0

請參閱更新的問題。對困惑感到抱歉。 – AKG