【发布时间】:2017-06-16 13:14:39
【问题描述】:
假设你有一个数组的散列o;例如为事件注册的回调,当每个事件可以有 0 个或多个回调时。
在 ES6 中有没有更好的表达方式?
if (key in o) o[key].push(x); else o[key] = [x]
“更好”是指其他开发人员更容易理解。可能更简洁,但不以牺牲可读性为代价。一个特殊(常见)问题是 o 通常是一个较长的表达式,例如this.listeners,重复三遍似乎不是最理想的。所以真正的代码可能是这样的:
if (event in this.listeners)
this.listeners[event].push(callback);
else
this.listeners[event] = [callback];
【问题讨论】:
标签: javascript arrays ecmascript-6