我有一个类,它需要在初始化时返回一个函数的值。 代码看起来是这样的。
class MyClass {
get list() {
return [1, 2, 4, 5, 6]
}
// CANNOT BE CHANGED
constructor() {
return this;
}
}
在运行New MyClass()
时,有没有一种方法可以在不更改构造函数的情况下调用并返回List()
中的内容?
编辑:所以下面的代码应该如下:x=new BrandCollector();
那么x
应该等于[1,2,4,5,6]
您可以将类重新定义为其自身的代理:
null
class MyClass {
get list() {
return [1, 2, 4, 5, 6]
}
// CANNOT BE CHANGED
constructor() {
return this;
}
}
MyClass = new Proxy(MyClass, { construct: () => MyClass.prototype.list });
let x = new MyClass;
console.log(x);
你可以给旧类分配一个新类。
null
class MyClass {
get list() {
return [1, 2, 4, 5, 6]
}
// CANNOT BE CHANGED
constructor() {
}
}
class MyClass1 {
get list() {
return [1, 2, 4, 5, 6]
}
constructor() {
return this.list;
}
}
MyClass = MyClass1;
var x = new MyClass;
console.log(x);
我认为你所要求的是不可能的,但是还有其他方法可以达到这个目的。
class MyClass {
constructor(values){
this.myArray = values
}
static List(){
return [1,2,3,4] // option 1
return new this([1,2,3,4]) //option 2
}
}
用法
const a = MyClass.List()
如果选项1将返回简单数组,那么在选项2中将返回具有属性a.MyArray
的数组的类
这对你有帮助吗?