我遇到了这个redux-actions 教程,我注意到一个不寻常的语法来创建一个对象方法:
const stringArray = ["STRING_ARRAY"];
const strangeObject = {
[stringArray]() {
console.log(stringArray);
}
};
有人可以命名或解释正在使用的语法功能吗?
我遇到了这个redux-actions 教程,我注意到一个不寻常的语法来创建一个对象方法:
const stringArray = ["STRING_ARRAY"];
const strangeObject = {
[stringArray]() {
console.log(stringArray);
}
};
有人可以命名或解释正在使用的语法功能吗?
它混合了ES6
.
您可以在对象中具有计算属性:
const b = "foo";
const a = {
[b]: true
};
// same as
const a = {};
a[b] = true;
还有一个函数的简写:
const a = {
b() { console.log("foo");}
};
// same as
const a = {
b: function() { console.log("foo");}
};
如果将两者混合,您将得到您所拥有的:一个名称是计算值的方法。在这里,您的对象将与
const strangeObject = {
STRING_ARRAY: function() {
console.log("STRING_ARRAY");
}
};
每当对象的计算值不是字符串时,如您的情况,它将被转换为字符串。
在你的情况下
["STRING_ARRAY"].toString() === "STRING_ARRAY"
所以变化不大。