您好,欢迎访问一九零五行业门户网

ES6中class与js prototype原型继承之间的关系

es6为了进一步的缩减代码的编写,和简化代码的逻辑,引入了关键词 class。但class的实现也是在prototype的基础上,做了一层语法糖,它的绝大部分功能,es5 都可以做到,新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。
class person { constructor(name) { this.name=name||"default"; } tostring(){ return 'name:'+this.name; } } var p1=new person(); console.log(p1.name); class boy extends person{ constructor(name){ super(name); this.gende='boy'; } tostring(){ return super.tostring()+" - gende:"+this.gende; } } var b1=new boy('hello'); console.log(b1); console.log(b1.tostring());
es5的继承,也就是prototype
实质是先创造子类的实例对象this
然后再将父类的方法添加到this上面(parent.apply(this))
es6的继承,也就是class
实质是先创造父类的实例对象this(必须先调用super)
然后再用子类的构造函数修改this
它们的实现机制是不同的
es6与 es5 一样,类的所有实例共享一个原型对象
对于es6这一块,还是很有必要去读一读 文档的。
相关推荐:
es6中class关键字详解
es6 javascript中class类的get与set用法实例
js的prototype属性用法详解
以上就是es6中class与js prototype原型继承之间的关系的详细内容。
其它类似信息

推荐信息