的答案迄今是正確的,但沒有解釋。
在JavaScript中,你可以叫不上名字時,這個名字是一個字符串調用一個函數。你可以可以做的是通過名稱從對象中檢索一個值,如果該值恰好是一個函數,則可以調用它。例如:
var myObject = {};
myObject.myFunction = function() { alert('test!'); };
// Get the property on `myObject` called `myFunction`
var theFunctionLookup = myObject['myFunction'];
// Since that property was a function, you can call it!
theFunctionLookup();
在瀏覽器中,在全球範圍內定義的功能被附加到window
對象。例如,這個工程:
function myFunction() { alert('test'); }
var theFunctionLookup = window['myFunction'];
theFunctionLookup();
您可以在最後兩行縮短到一個:
function myFunction() { alert('test'); }
// Look up and call the function in one line.
window['myFunction']();
出於同樣的原因,你可以使用動態計算的字符串查找功能。
function checkBalloon() {
alert('checking balloon');
}
function toggle(n){
if (sessionStorage['toggle'+n]== 0){
window['check' + n]();
check+n();
}
}
toggle('Balloon');
考慮一下,如果這將是更好地使通用的'check'這需要參數'N'。 –