如何使用函数和类在javascript中创建继承

如何使用函数和类在javascript中创建继承,javascript,oop,inheritance,Javascript,Oop,Inheritance,我想创建一个继承,在这里我定义了类,并使用函数创建继承 class ClassA{ constructor(){ this.name = "Kanike" } } function ClassB(jkk){ new ClassA() this.last = jkk } ClassB.prototype = ClassA.prototype var myClassB = new ClassB("kel");

我想创建一个继承,在这里我定义了类,并使用函数创建继承

class ClassA{
    constructor(){
    this.name = "Kanike"
    }
}
function ClassB(jkk){
     new ClassA()
    this.last = jkk
    
}
ClassB.prototype = ClassA.prototype
var myClassB = new ClassB("kel");
alert(myClassB.name)//cant be accessed here

这就是
扩展
关键字的作用。扩展该类,您可以访问
name
last
字段:

A类{
构造函数(){
this.name=“Kanike”;
}
}
类B扩展了类A{
建造师(最后){
超级();
this.last=last;
}
}
设classB=新classB(“Kel”);

log(classB.name,classB.last)
您的意思是要使使用
函数定义的构造函数继承使用
类定义的构造函数吗?为什么?(您应该有一个很好的理由,因为它过于复杂,不提供可移植性好处。)您已经在使用
class
,那么为什么不正确地使用
class ClassB扩展ClassA
?文档:您不能真正使普通构造函数从类“继承”,因为要正确地执行此操作,您必须使用特定的
this
值调用类构造函数,但只能使用
new
调用类构造函数(不能使用该值设置
this
)。而且
ClassB.prototype=ClassA.prototype
是错误的。有关如何使用构造函数设置继承的更多信息,请参阅。但正如大家所说,只需使用
class
@Ry——实际上我们有一个JS包,其中所有内容都在类中,我们有自己的产品,其中使用了基于函数的类。如果有任何解决方案,它将非常有帮助us@prawin:解决方案是切换到
<代码>函数
构造函数除了ES5兼容性之外没有任何优势,并且您不能仅使用ES5特性以任何方式扩展ES6类。