zoukankan      html  css  js  c++  java
  • ES6 class -- Class 的基本语法

    类:

    降低维护成本、使代码高度复用、扩充方便灵活

    OOP 面向对象开发

    核心:封装

    类->工厂->对象

    ES6中的类

    //车类
    class Car{
        //构造函数
        constructor(){
            console.log("开始造车");
        }    
    }
    
    //实例化,类->对象
    let c=new Car();

    构造函数的写法有点类似于简洁表示法:

    //构造函数的写法类似简洁表示法
    let obj={
        //普通写法
        fn:function(){
    
        },
        //简洁表示法
        fn2(){
            
        }
    }
    //车类
    class Car{
        //构造函数
        constructor(wheel,color,length,width){//接收参数
            //给属性赋值,this指向当前实例化的结果
            this.wheel=wheel;
            this.color=color;
            this.length=length;
            this.width=width;
            this.speed=0;
        }    
    
        //方法
        speedUp(){
            this.speed+=1;
        }
    }
    
    //实例化,类->对象
    let c=new Car(3,"#abcdef",20,40);
    console.log(c);
    c.speedUp();//调用实例(对象)的方法
    console.log(c.speed);//获取实例(对象)的属性

    不同实例之间是相互独立的

    //车类
    class Car{
        //构造函数
        constructor(wheel,color,length,width){//接收参数
            //给属性赋值,this指向当前实例化的结果
            this.wheel=wheel;
            this.color=color;
            this.length=length;
            this.width=width;
            this.speed=0;
        }    
    
        //方法
        speedUp(){
            this.speed+=1;
        }
    }
    
    //实例化,类->对象
    let c1=new Car(3,"#abcdef",20,40);
    let c2=new Car(4,"pink",10,40);
    console.log(c1,c2);

    音乐播放器类实例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>ES6 class</title>
    </head>
    <style>
    
    </style>
    <body>
    
    <div id="app"></div>
    
    <script>
    
    //模拟一个播放器类
    class AudioPlayer{
        constructor(container){//接收参数
            this.container=document.querySelector(container);
            this.songsList=[];
            this.dom=null;
            this.audio=new Audio();
            this.status=0;//标记播放器的状态
    
            this.getSongs();//获取歌单列表
            this.createElement();//创建DOM
            this.bindEvent();//绑定事件
            this.render();//渲染到页面
        }
    
        getSongs(){
            //模拟ajax请求拿数据
            this.songsList=[
                {
                    songName:"name1",
                    songCover:"cover1",//封面
                    songSinger:"singer1",//歌手
                    songUrl:"url1"//资源地址
                },
                {
                    songName:"name2",
                    songCover:"cover2",//封面
                    songSinger:"singer2",//歌手
                    songUrl:"url2"//资源地址
                }
            ];
        }
    
        createElement(){
            const div=document.createElement("div");
            div.innerHTML=`
                <div class="btn">播放按钮</div>
                <div>进度条</div>
            `;
            this.dom=div;
        }
    
        bindEvent(){
            this.dom.querySelector(".btn").addEventListener("click",()=>{
                console.log("开始播放");
            })
        }
    
        render(){
            this.container.appendChild(this.dom);
        }
    }
    
    new AudioPlayer("#app");
    
    </script>
    </body>
    </html>

  • 相关阅读:
    ajax的一些知识
    前端性能优化汇总
    jquery实现一些小动画二
    python简单日志处理
    逆波兰式---C实现
    java常见异常
    Hive与HBase集成及常见问题解决
    SQL for HBase
    Demystifying the Skip Scan in Phoenix
    Difference between DDL, DML and DCL commands
  • 原文地址:https://www.cnblogs.com/chenyingying0/p/12581268.html
Copyright © 2011-2022 走看看