2014-07-05 17 views
0

實際的代碼替代我想將參數傳遞到被用作實際的代碼參數如在Javascript

this.illuminateLeg = function(whom) { 
    var propertiesToIlluminate = [], prop, illuminateInternal, i = 0, delay = 100, intervalId; 
    for (key in this.whom.zoom) { 
     propertiesToIlluminate.push(this.whom.zoom[key]); 
    } 
} 

我想傳遞一個用於迭代一個whom參數的函數whom我的對象的屬性。

我知道它可能將字符串作爲參數傳遞,但實際代碼如何?

有沒有可能這樣做?

+0

你的問題是真的不清楚。你是否想要訪問'this'的屬性,但是你想從'who'參數獲取屬性名稱?然後使用方括號語法,如下面的答案中所建議的。或者你想傳遞函數(「代碼段」)作爲參數?然後通過它。 – Tommi

+0

明白了,下面的答案擊中了現場。 –

+0

不要忘記將它標記爲已接受:) – Tommi

回答

2

像這樣?

for (key in this[whom].zoom) 

而不是

for (key in this.whom.zoom) 

,然後調用這樣

this.illuminateLeg("whom") 
+0

明白了,非常感謝 –

+0

很高興..我可以提供幫助。 –

1

功能如果whom值是屬性的名稱,你可以這樣做:

for (key in this[whom].zoom) { 

其他e,你可以讓來電者通過一個功能,採取對象:

this.illuminateLeg = function(getWhom) { 
    /* ... */ 

    for (key in getWhom(this).zoom) { 
     /* ... */ 
    } 

// Call with function as argument: 
obj.illuminateLeg(function (param) { 
    return param.somebody.somethingElse; 
});