JavaScript继承和构造函数

时间:2012-08-31 21:01:33

标签: javascript oop inheritance

我正在尝试理解JavaScript中的继承。我正在使用原型将子类链接到它的父级。但是一旦我定义了这个关系,父类的构造函数就会开始运行。

    <script type="text/javascript">
        function Person ()
        {
            window.alert('We\'ve got a new person!');
        }

        function King ()
        {
            window.alert('We\'ve got a new king!');
        }

        King.prototype = new Person();

        //King.prototype.constructor = King;
        //var erik = new King();
    </script>

在JavaScript中使用继承的正确方法是什么?

引发混淆的教程:https://developer.mozilla.org/en-US/docs/JavaScript/Introduction_to_Object-Oriented_JavaScript

1 个答案:

答案 0 :(得分:1)

那是因为Javascript是一种原型语言,并不能以这种方式真正支持继承。它的对象是松散类型,可以在运行时使用额外的功能和属性进行扩展。

所以你真正做的是创建一个Person的instance,然后可以使用额外的方法进行扩展。

tuturial说:

  

在JavaScript中,您可以通过分配父类的实例来完成此操作   到了儿童班,然后把它专门化。

如果你习惯了真实的(好的,基于类的)OO,那就太混乱了。