JavaScript进阶面向对象ES6整合篇

JavaScript进阶面向对象ES6整合篇,第1张

整合篇整体内容比较多,会一直更新更新

文章目录 一、JavaScript面向对象1、面向对象编程介绍2、ES6中的类和对象3、类的继承4、面向对象案例 二、构造函数和原型三、函数进阶四、正则表达式五、ES6


一、JavaScript面向对象


1、面向对象编程介绍

1.1 两大编程思想
分为面向过程面向对象



两种编程思想是根据不同的程序需要来选择的,比较简单的还是推荐使用面向对象来写,因为实现的步骤要更加简单一些
如果项目比较大需要多人合作的,则选择面向过程,因为便于维护和复用

2、ES6中的类和对象







<script>
        // 1. 创建类 class  创建一个 明星类
        class Star {
            constructor(uname) {
                this.uname = uname
            }
        }

        // 2. 利用类创建对象 new
        var ldh = new Star ('刘德华')
        console.log(ldh.uname)
    </script>
 <script>
        // 1. 创建类 class  创建一个 明星类
        class Star {
            constructor(uname) {
                this.uname = uname
            }
        }

        // 2. 利用类创建对象 new
        var ldh = new Star ('刘德华')
        var zxy = new Star ('张学友')
        console.log(ldh.uname)
        console.log(zxy.uname)
    </script>
<script>
        // 1. 创建类 class  创建一个 明星类
        class Star {
            constructor(uname,age) {
                this.uname = uname
                this.age = age
            }
        }

        // 2. 利用类创建对象 new
        var ldh = new Star ('刘德华',18)
        var zxy = new Star ('张学友',20)
        console.log(ldh) // 输出对象的所有属性
        console.log(zxy)
    </script>



1.我们类里面所有的函数不需要写function
2.多个函数方法之间不需要添加逗号分隔

<script>
        // 1. 创建类 class  创建一个 明星类
        class Star {
            constructor(uname,age) {
                this.uname = uname
                this.age = age
            }
            sing(song){
                // console.log('我唱歌')
                console.log(this.uname + song)
            }
        }

        // 2. 利用类创建对象 new
        var ldh = new Star ('刘德华',18)
        var zxy = new Star ('张学友',20)
        console.log(ldh)
        console.log(zxy)
        // 1.我们类里面所有的函数不需要写function
        // 2.多个函数方法之间不需要添加逗号分隔
        ldh.sing('冰雨')
        zxy.sing('李香兰')
    </script>
3、类的继承

<script>
        // 1.类的继承
        class Father {
            constructor(){

            }
            money(){
                console.log(100)
            }
        }
        class Son extends Father {

        }
        var son = new Son()
        son.money()
    </script>


<script>
        
        class Father {
            constructor(x,y){
                this.x = x
                this.y = y
            }
            sum(){
                console.log(this.x + this.y)
            }
        }
        class Son extends Father {
            constructor(x,y){
                super(x,y) // 调用父类中的构造函数
            }
        }
        var son = new Son(1,2)
        var son1= new Son(11,22)
        son.sum()
        son1.sum()
    </script>


<script>
        

        // super 关键字调用父级普通函数
        class Father {
            say(){
                return '我是父级'
            }
        }
        class Son extends Father {
            say() {
                // console.log('我是子级')
                console.log(super.say())
                // super.say() 就是调用父级中的普通函数 say()
            }
        }
        var son = new Son()
        son.say()
        // 继承中的属性或者方法查找原则:就近原则
        // 1.继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类的
        // 2.继承中,如果子类里面没有,就去查找父类有没有这个方法,如果有,就执行父类的这个方法(就近原则)

    </script>

<body>
    <button>点击</button>
    <script>
        class Star {
            constructor(uname,age) {
                this.uname = uname
                this.age = age
                // 2.类里面的共有的属性和方法一定要加this使用.
                // this.sing()
                this.btn = document.querySelector('button')
                this.btn.onclick = this.sing
            }
            sing() {
                console.log(this.uname)
            }
        }
         // 1.在 ES6中类没有变量提升,所以必须先定义类,才能通过类实例化对象
        var ldh = new Star('刘德华')

    </script>

4、面向对象案例




该方法网址:https://developer.mozilla.org/zh-CN/docs/Web/API/Element/insertAdjacentHTML


二、构造函数和原型
三、函数进阶
四、正则表达式
五、ES6

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1297222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存