从祖先克隆一个对象
clone an object from the ancestor
在Javascript(ES6)中,我定义了一棵继承classes的树:
class A {
constructor () {
(...)
}
}
class B extends A {
constructor () {
(...)
super();
}
}
class C extends B {
constructor () {
(...)
super();
}
}
依此类推(a class D 也扩展了 B,等等)。
现在,在 A
中,我想编写一个函数 resolve
来克隆当前对象并仅更改其某些字段。
class A {
(...)
resolve() {
// I want to clone this
const newClass = ???
}
}
是否可以从A获取嵌套的继承构造函数?
例如,如果我是 C
,是否可以从 resolve
创建一个新的 C
?
否则,是否可以克隆 this
所有函数都是在继承的 classes 中定义的属性?
尝试使用 this.constructor
:
class A {
foo() { return new (this.constructor) }
}
class B extends A {
jj() { console.log('jj') }
}
(new B).foo().jj()
在Javascript(ES6)中,我定义了一棵继承classes的树:
class A {
constructor () {
(...)
}
}
class B extends A {
constructor () {
(...)
super();
}
}
class C extends B {
constructor () {
(...)
super();
}
}
依此类推(a class D 也扩展了 B,等等)。
现在,在 A
中,我想编写一个函数 resolve
来克隆当前对象并仅更改其某些字段。
class A {
(...)
resolve() {
// I want to clone this
const newClass = ???
}
}
是否可以从A获取嵌套的继承构造函数?
例如,如果我是 C
,是否可以从 resolve
创建一个新的 C
?
否则,是否可以克隆 this
所有函数都是在继承的 classes 中定义的属性?
尝试使用 this.constructor
:
class A {
foo() { return new (this.constructor) }
}
class B extends A {
jj() { console.log('jj') }
}
(new B).foo().jj()