gpt4 book ai didi

javascript - 如何公开属性对象的方法,就好像它们是对象自己的方法一样? JavaScript

转载 作者:行者123 更新时间:2023-11-28 12:14:00 25 4
gpt4 key购买 nike

我非常渴望做这样的事情:

class A {
constructor(){}
age() { return 15; }
}

class B {
constructor() {
this.a = new A();
// DO SOMETHING THAT THIS IS POSSIBLE:
}
}

B b = new B();
b.age();

如何公开该方法,就像它是对象 b 自己的方法一样?我需要对属性的每个方法执行此操作,无论数量和名称如何。

注意:我不能使用继承。

最佳答案

extends 提供继承功能:

class A {
constructor(){}
age() { return 15; }
}

class B extends A {
constructor() {
super()
}
}

const b = new B();

console.log(b.age());

我有兴趣了解为什么不能使用普通继承。以下是手动从基类继承的方法:

class A {
constructor(){}
age() { return 15; }
}

class B {
constructor() {
Object.getOwnPropertyNames(A.prototype).forEach(prop => {
if (prop !== 'constructor') {
this[prop] = A.prototype[prop];
}
});
}
}

const b = new B();

console.log(b.age());

关于javascript - 如何公开属性对象的方法,就好像它们是对象自己的方法一样? JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53937249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com