尝试测试≈
之类的东西> function Computed(name, prop) {
... [this.prop]: name
... };
... // but this doesn't work.
有没有办法正确地做到这一点?
答案 0 :(得分:3)
计算属性仅在类主体或对象文字内部工作,而不在函数中工作(就像普通的属性定义一样)。但是你无论如何都不需要它们:你可以使用括号语法在实例上创建属性:
function Computed(name, prop) {
this[prop] = name;
}
答案 1 :(得分:1)
计算属性{ [x]: y }
是对象文字语法的一部分,但构造函数只是函数;您可以使用通常的括号表示法来引用其中包含动态名称的属性。
function Computed(name, prop) {
this[name] = prop;
}
答案 2 :(得分:0)
要使用计算属性在this
设置属性,您可以使用Object.assign()
,首先将this
作为第一个参数传递
function Computed(name, prop) {
// this.prop = "abc";
Object.assign(this, {[this.prop]:name});
};