扩展类,没有自己的方法

时间:2017-03-07 10:03:01

标签: javascript class extends

我尝试使用其构造函数覆盖的另一个类来扩展一个类,但是当我实例化这个类时,它没有自己的方法,但是它有自己的属性。

这是一个无法正常运作的例子:



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);

1 个答案:

答案 0 :(得分:0)

ECMAScript6类方法是对象的原型对象的方法。您将找到不在对象本身中的方法,但在obj.__proto__

https://reinteractive.com/posts/235-es6-classes-and-javascript-prototypes

在这里,您可以看到并可能了解原型对象内部的情况。是的,ES6语法只是一种语法变化,而不是一项新技术。