JS面向对象类

类与实例

  • 类的声明
  • 生成实例

类与继承

  • 如何实现继承
  • 继承的几种方式

以下三种方式都是完美继承

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <script>
        function Parent1() {
            this.name = 'Parent1'
            this.play = [1, 2, 3]
        }

        function Child1() {
            Parent1.call(this) //this = Child1.prototype
            this.type = 'Child1'
        }
        Child1.prototype.__proto__ = Parent1.prototype;
        
        S1 = new Child1;

        console.log(S1 instanceof Child1, S1 instanceof Parent1);
        console.log(S1)
        console.log(S1.constructor)
        console.log(S1.__proto__.__proto__.constructor)
        //----------------------------------------------------------
        function Parent2() {
            this.name = 'Parent2'
            this.play = [1, 2, 3]
        }

        function Child2() {
            Parent2.call(this)
            this.type = 'Child2'
        }
        Child2.prototype = Object.create(Parent2.prototype)
        Child2.prototype.constructor = Child2;
        var S2 = new Child2();
        console.log(S2)
        console.log(S2.constructor)
        console.log(S2.__proto__.__proto__.constructor)
        //----------------------------------------
        class Parent3{
            constructor(){
                this.name = 'Parent3'
                this.play = [1, 2, 3]
            }
        }

        class child3 extends Parent3{
            constructor(){
                super()
                this.type = 'Child3'
            }
        }

        var S3 = new child3;
        console.log(S3)
        console.log(S2.constructor)
        console.log(S2.__proto__.__proto__.constructor)

        console.log(S1,S2,S3)
    </script>
</body>

</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值