我有這樣的代碼:如何連接函數名稱中的變量?
var a = 1;
function test + a() {
alert('test');
}
test1();
我從瀏覽器控制檯收到此錯誤:
Uncaught SyntaxError: Unexpected token +
所以,我怎麼能串聯變量a
到test
其最終運行功能test1
這裏?
我有這樣的代碼:如何連接函數名稱中的變量?
var a = 1;
function test + a() {
alert('test');
}
test1();
我從瀏覽器控制檯收到此錯誤:
Uncaught SyntaxError: Unexpected token +
所以,我怎麼能串聯變量a
到test
其最終運行功能test1
這裏?
在JavaScript中,所有的變量/聲明的方法在全球範圍是對象window
的成員,因此你可以聲明函數是這樣的:
var a = 1;
window['test' + a] = function() {
alert('test');
}
test1();
PS - 你應該做這樣的事情的情況很少。如果您不確定,請編輯您的問題。與使用附加到全局窗口對象的動態命名函數相比,可能有更好的方法來實現你想要的。只是因爲它可以做並不意味着它應該是。
試試這個:
var a = 1;
var name="test"+a;
var func = new Function(
"return function " + name + "(){ alert('test'); }"
)();
//function call
func();
參考。 http://stackoverflow.com/questions/5117127/javascript-dynamic-variable-name,http://stackoverflow.com/questions/11515924/access-javascript-variables-dynamically,http://stackoverflow.com/questions/ 12826154/can-i-create-dynamic-object-name-in-javascript?lq = 1,http://stackoverflow.com/questions/13291554/dynamic-variables-names-in-javascript – user2864740 2014-08-29 05:35:24
只需將函數分配給*給出*「動態變量名稱」。但更好:使用顯式數組/對象並將函數映射到索引/屬性。 – user2864740 2014-08-29 05:37:33