我尝试使用其构造函数覆盖的另一个类来扩展一个类,但是当我实例化这个类时,它没有自己的方法,但是它有自己的属性。
这是一个无法正常运作的例子:
class A {
constructor () {
return {
pi: 3.14
}
}
}
class B extends A {
constructor () {
super();
this.c = 10;
}
d () {}
}
let b = new B();
console.log(b);

这里,b是:
Object {
c:10,
pi:3.14
}
为什么' d
'方法丢失了?
编辑:
以下是具体案例:
我需要使用HTMLElement扩展一个类,我可以实例化并使用html元素,而无需使用document.registerElement注册。
我的代码是:
class Element{
constructor(){
return document.createElement('div');
}
}
class Editor extends Element{
constructor(){
super();
}
}
我希望像我这样使用我的课程:
let editor = new Editor();
document.querySelector('body').appendChild(editor);
答案 0 :(得分:0)
ECMAScript6类方法是对象的原型对象的方法。您将找到不在对象本身中的方法,但在obj.__proto__
。
https://reinteractive.com/posts/235-es6-classes-and-javascript-prototypes
在这里,您可以看到并可能了解原型对象内部的情况。是的,ES6语法只是一种语法变化,而不是一项新技术。