Javascript 函数构造函数是否支持带有“this”的计算属性?

Javascript 函数构造函数是否支持带有“this”的计算属性?,javascript,Javascript,试着测试类似的东西≈ > function Computed(name, prop) { ... [this.prop]: name ... }; ... // but this doesn't work. 有什么方法可以正确执行吗?计算属性{[x]:y}是对象文字语法的一部分,但构造函数只是函数;您可以使用常用的括号表示法在属性内部的语句中引用具有动态名称的属性 function Computed(name, prop) { this[name] = prop; } 计

试着测试类似的东西≈

> function Computed(name, prop) {
... [this.prop]: name
... };
...    // but this doesn't work.

有什么方法可以正确执行吗?

计算属性
{[x]:y}
是对象文字语法的一部分,但构造函数只是函数;您可以使用常用的括号表示法在属性内部的语句中引用具有动态名称的属性

function Computed(name, prop) {
    this[name] = prop;
}

计算属性只在类实体或对象文本中工作,而不在函数中工作(就像普通属性定义不工作一样)。但无论如何,您不需要它们:您可以使用括号语法在实例上创建属性:

function Computed(name, prop) {
    this[prop] = name;
}

要使用计算属性设置
的属性,您可以使用
对象.assign()
和作为第一个参数传递的

function Computed(name, prop) {
  // this.prop = "abc";
  Object.assign(this, {[this.prop]:name});  
};

此引用的问题代码是什么?
[this.prop]:name
的预期结果是什么?@guest271314,我只是想将这个单词标记为与代码相关的部分。注意,如果
这个
窗口
“name”
可能是
窗口的一个属性,一个字符串。是否尝试在赋值时设置两个值,
“prop”
this
this.prop
prop
,以及
name
的值。然而,这只是一个智力练习,对吗?比如说要考虑什么?是否有一个真实的情况可以使用这个,而不是@Bergi和Ryan的答案?答案涉及到问题语法的使用。您可以选择任一答案以获得相同的结果。如果不确定是否可以使用特定语法设置对象的属性,那么问题代码的目的是什么?