由浅到深了解JavaScript类

2019-06-03 20:10:05于丽


        在C++中是有多重继承的概念的,这里是讨论JavaScript,因此不打算讲,只是说说它的一点点思想以供参考。

        在上边男孩的继承问题中,男孩其实不仅仅是继承自男人,还继承自孩子(有男孩子,也有女孩子)这个类,因此,它同时继承了两个类:男人与男孩,这就是所谓的多重继承。

        好,这个问题打住,我们还是回归主题。 

先看第一个类的定义:         
        function A()
        {
                this.Name = "泣红亭";
                alert(this.Name);
        }

        //这个类定义了一个属性Name,默认值为"泣红亭"

        //现在看第二个类的定义:

        function B() 
        {
                this.Sex = "男";
                alert(this.Sex);
        }

        //定义了一个属性Sex,默认值为"男"

        //继承的方式就是 子类.prototype = new 父类();        
        //现在我们来让B类继承A类:

        B.prototype = new A();

        

        //运行这一段代码:

        var Obj = new B(); //首先打开警告窗口显示"泣红亭",再显示"男" 

可以从上边的结果看出B类继承了A类,拥有了A类的属性Name,并且执行了A类的构造函数,而且A类的构造函数在B类的构造函数执行之前执行。因此我们利用这个可以实现重写父类的方法以及重设置父类某属性的默认值:

        
        function A()
        {
                this.Name = "泣红亭";