gpt4 book ai didi

javascript - 使用常量作为 JavaScript 关联数组的索引

转载 作者:行者123 更新时间:2023-12-02 22:48:18 26 4
gpt4 key购买 nike

我希望在 JavaScript 中创建一个关联数组,但使用定义为类一部分的常量作为索引。

我想要这个的原因是这样类的用户可以使用常量(定义事件)来触发操作。

一些代码来说明:

STATE_NORMAL = 0;
STATE_NEW_TASK_ADDED = 0;
this.curr_state = STATE_NEW_TASK_ADDED;

this.state_machine = {
/* Prototype:
STATE_NAME: {
EVENT_NAME: {
"next_state": new_state_name,
"action": func
}
}
*/

STATE_NEW_TASK_ADDED : { // I'd like this to be a constant
this.EVENT_NEW_TASK_ADDED_AJAX : {
"next_state": STATE_NEW_TASK_ADDED,
"action" : function() {console.log("new task added");},
}
}
}

// Public data members.
// These define the various events that can happen.
this.EVENT_NEW_TASK_ADDED_AJAX = 0;
this.EVENT_NEW_TASK_ADDED_AJAX = 1;

我无法让它发挥作用。我不太擅长 JavaScript,但看起来无论我做什么,数组都是用字符串而不是常量定义的。有没有办法强制数组使用常量?

最佳答案

在 ECMAScript 6 中,您可以使用对象键的计算值:

var CONSTANT_A = 0, CONSTANT_B = 1
var state_machine = {
[CONSTANT_A]: function () {
return 'a'
},
[CONSTANT_B]: function () {
return 'b'
}
};

console.log(state_machine)

这在 Internet Explorer 11 和 Safari 浏览器中不起作用: https://kangax.github.io/compat-table/es6/#test-object_literal_extensions_computed_properties

关于javascript - 使用常量作为 JavaScript 关联数组的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4117214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com