javascript:具有"常量"整数作为键的函数字典

Vin*_*nce 2 javascript dictionary function-pointers constants

以下代码工作正常:

function a() { console.log("a"); };
function b() { console.log("b"); };

var F = {1:a,2:b};

F[1](); // log "a"
F[2](); // log "b"
Run Code Online (Sandbox Code Playgroud)

但这个没有:

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"
Run Code Online (Sandbox Code Playgroud)

这个想法是A和B是常数整数,仅用于代码可读性.我知道javascript中没有"const",但你明白了.

什么是干净的方式来获得这样的工作?(如果A和B在最后有效地保持不变,我不在乎那么多,只是让它们大写表示我未来不会改变它们的价值).

小智 7

在ES6中,使用计算属性名称:

{ [A]: a }
Run Code Online (Sandbox Code Playgroud)