在下面的测试函数中,我传入2个值并返回一个简单的对象。由于某种原因,'cat'不用作键值,而是使用占位符x。我确信这种行为有一个明显的解释,但我看不出它是什么。也许我的大脑太困了。谢谢你的帮助!
"use strict";
let functionTest = function(x, y) {
return console.log({x: y});
}
functionTest('cat', 153);
我尝试了箭头功能,结果是一样的。
"use strict";
let functionTest = (x, y) => console.log({x: y});
functionTest('cat', 153);
答案 0 :(得分:2)
使用[X]
,这是ES6语法
"use strict";
let functionTest = function(x, y) {
return console.log({[x]: y});
}
functionTest('cat', 153);

答案 1 :(得分:2)
您必须使用[]
从ECMAScript 2015开始,也是对象初始化器语法 支持计算属性名称。这允许你放一个表达式 在方括号[]中,将被计算并用作属性名称。 这让人联想到属性访问者的括号表示法 语法,您可能已经习惯于读取和设置属性。 现在,您也可以在对象文字中使用类似的语法:
"use strict";
let functionTest = function(x, y) {
return console.log({[x]: y});
}
functionTest('cat', 153);