javascript : dictionary of functions with "constant" integer as keys

标签 javascript dictionary constants function-pointers

以下代码工作正常:

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/

相关文章:

javascript - 条件和 switch 语句的问题

javascript - 从javascript加载图像

C# 使用 RegEx 和字典替换 "Whole words only"

Python继承与字典突变

c++ - 如何声明一个常量的方法指针

javascript - 如何在提交后使 php 表单只读并在同一页面上单击编辑可编辑?

javascript - 精通 jQuery 是否意味着精通 JavaScript?

javascript - 在保留键的同时按值的属性对 Map 进行排序

c - 如何在同一行初始化包含 const char* 的结构和 const char* 本身?

c++ - 将成员函数在概念上不是时标记为 const