以下代码工作正常:
function a() { console.log("a"); };
function b() { console.log("b"); };
var F = {1:a,2:b};
F[1](); // log "a"
F[2](); // log "b"
但这个没有:
function a() { console.log("a"); };
function b() { console.log("b"); };
var A = 1;
var B = 2;
var F = {A:a,B:b};
F[A](); // log "TypeError : F[A] is not a function"
这个想法是 A 和 B 将是常量整数,仅用于代码可读性。我知道 javascript 中没有“const”,但是您明白了。
获得这样的工作的干净方法是什么? (我不太关心 A 和 B 最后是否有效不变,只是让它们大写表明我的 future 我不会改变它们的值)。
最佳答案
在 ES6 中,使用计算属性名称:
{ [A]: a }
关于javascript : dictionary of functions with "constant" integer as keys,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26986804/