zoukankan      html  css  js  c++  java
  • es6-class

    es5中有構造函數可以很好的繼承複用模塊,es6中更加簡潔,如下:

    "use strict";
    class Video {
        constructor(signStatus){
            this.signStatus = signStatus
            this.boxDom = document.getElementById("boxDom")
            this.init()
        }
        init(){
            this._getAnchorInfo()
        }
        _getAnchorInfo(){
            api.getInfo("/anchor/info").then(res =>{
                // success
                if(res.ret_code=="0"){
                    let data = res.data
                    this._renderHtml(data)
                // failed
                }else{
                    this._errorTips()
                }
            }).catch(error =>{
                console.log(error)
            })
        }
        _renderHtml(data){
            if(this.signStatus){
                // 如果存在
            }else{
                this.boxDom.innerHTML="</p>"+data+"</p>"
            }
        }
        _errorTips(){
            this.boxDom.innerHTML="数据为空了~"
        }
    }
    
    var ReplayVideos = new Video()
    window.ReplayVideos = ReplayVideos
    
    // other status
    // var ReplayVideos = new Video(true)

    上面等同於:

    "use strict";
    function Video(status){
        this.init(status)
    }
    Video.prototype = {
        init:function(status){
            this.status = status;
            this.boxDom = document.getElementById("boxDom");
            this.getAnchorInfo();
        },
        getAnchorInfo:function(){
            let _this = this;
            api.getInfo("/anchor/info").then(function(res){
                // success
                if(res.ret_code=="0"){
                    let data = res.data
                    _this._renderHtml(data)
                // failed
                }else{
                    _this._errorTips()
                }
            }).catch(function(error){
                console.log(error)
            })
        },
        renderHtml:function(data){
            if(this.status){
                // 如果存在
            }else{
                this.boxDom.innerHTML="</p>"+data+"</p>"
            }
        },
        errorTips:function(){
            this.boxDom.innerHTML="数据为空了~"
        }
    }
    
    var ReplayVideos = new Video()
    window.ReplayVideos = ReplayVideos
    
    // other status
    // var ReplayVideos = new Video(true)

    注意class中的this受限於是否使用箭頭函數!

  • 相关阅读:
    I/O多路复用
    Django重点之url别名
    10 个常用的 Linux 命令?
    软连接和硬链接的区别?
    Linux 重定向命令有哪些?有什么区别?
    在 linux 中 find 和 grep 的区别??
    Django中用 form 实现登录注册
    你所遵循的PEP8代码规范是什么?请举例说明其要求?
    什么是 Python 的命名空间?
    ELK+Kafka日志收集环境搭建
  • 原文地址:https://www.cnblogs.com/-walker/p/8422559.html
Copyright © 2011-2022 走看看