首页 > 解决方案 > 为什么具有相同名称值的键的工厂函数仅在给定参数时才更改值

问题描述

在: function f(sex) { return : { sex: sex, } } 如果我这样做: const Leopard = f(blue) Leopard 将是一个具有 {sex: blue,} 的对象,我的问题是为什么 sex (the键)不改变,不能改变键是不是很麻烦。

标签: javascript

解决方案


在对象字面{sex: sex}量中,属性键(名称)被硬编码sex。该来自参数sex,但名称是硬编码的。

如果您想同时更改两者,您可以使用计算属性名称语法将参数中的值用作属性名称:

return {[sex]: sex};
//      ^^^^^−−−−−−−−−−−−−−−− computed property name syntax uses
//                            the value from the `sex` parameter

例子:

function f(sex) {
    return { [sex]: sex, };
}

const leopard = f("blue");
console.log(leopard);


推荐阅读