三种继承性

    <script>

        function human(name,age){

            this.name=name

            this.age=age

        }

        human.prototype.chifan=function(){

            console.log(this.name+"正在吃饭")

        }

        human.prototype.shuijiao=function(){

            console.log(this.name+"正在睡觉")

        }

        // //原型继承

        // //缺点:所有属性的值,只和创建human对象时保持一致

        // function Student(name,age){

        // }

        // Student.prototype.tingke=function(){

        //     console.log(this.name+"正在听课")

        // }

        // Student.prototype=new human("继承学生",10)

        // var S1=new Student("小明",8)

        // console.log(S1)   //结果为   继承学生 10


 

        // function Teacher(name,age){

        // }

        // Teacher.prototype.jiangke=function(){

        //     console.log(this.name+"正在讲课")

        // }

        // Teacher.prototype=new human("继承老师",30)

        // var T1=new Teacher("张老师",28)

        // console.log(T1)   //结果为   继承老师 30

        //冒充继承:通过改变this的指向性,实现的继承方法

        //缺点:无法继承原型,只是调用了一次函数

        // function Student(name,age){

        //     human.call(this,name,age)

        // }

        // Student.prototype.tingke=function(){

        //     console.log(this.name+"正在听课")

        // }

        // var S1=new Student("小明",8)

        // console.log(S1)  //显示小明 年纪8

        // console.log(S1.chifan())  //报错

        // function Teacher(name,age){

        //     human.call(this,name,age)

        // }

        // Teacher.prototype.jiangke=function(){

        //     console.log(this.name+"正在讲课")

        // }

        // var T1=new Teacher("张老师",28)

        // console.log(T1)  //显示张老师 年纪28

        // console.log(T1.shuijiao())  //报错

        //组合继承 最优解决方案

        function Student(name,age){

            human.call(this,name,age)

        }

        Student.prototype.tingke=function(){

            console.log(this.name+"正在听课")

        }

        Student.prototype=new human()

        var S1=new Student("小明",8)

        console.log(S1)  // 显示:小明  8

        console.log(S1.chifan())  //显示:小明正在吃饭

       

        function Teacher(name,age){

            human.call(this,name,age)

        }

        Teacher.prototype.jiangke=function(){

            console.log(this.name+"正在讲课")

        }

        Teacher.prototype=new human()

        var T1=new Teacher("张老师",28)

        console.log(T1)  // 显示:张老师  28

        console.log(T1.shuijiao())  //显示:张老师正在睡觉

    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值