美文网首页
Day21 ES6 class

Day21 ES6 class

作者: JSleefat | 来源:发表于2019-04-23 00:20 被阅读0次

    ES6语法 class
    constructor 构造器,不写明的话,会自动默认一个构造器
    super,可当作函数或对象使用,
    当子类扩展时,必须调用super(),因为子类没有this
    super() 在这里相当于 A.prototype.constructor.call(this, props)

    一些项目中的实例,可用class更方便的写插件,具有更好的可读性和可扩展性

    import Toast from 'utils/toast.js';
    import Wait from 'utils/wait.js';
    import Device from 'utils/device.js';
    /*
     * 计算等级
     * 修改时间:2019-4-22
     */
    class CalculateRank {
      constructor(options) {
        this.wait = null;
        this.defaults = {
          //计算前回调
          beforeCallback: () => {
            this.showWait('加载中...');
          },
          //计算成功回调
          succeedCallback: (dataObj) => {
            this.hideWait();
          },
          //取消拍照回调
          cancelCallback: () => {
            this.hideWait();
          },
          //不支持回调
          notSupportCallback: () => {
            this.showToast('敬请期待');
          }
        }
        $.extend(this.defaults, options);
      }
      /**
       * 显示加载框
       * @param {string} text 文案
       */
      showWait(text) {
        this.wait = new Wait({
          content: text
        });
      }
      /**
       * 隐藏加载框
       */
      hideWait() {
        this.wait && this.wait.remove && this.wait.remove();
      }
      /**
       * toast提示
       * @param {string} text 文案
       * @param {function} callback 回调
       */
      showToast(text, callback) {
        new Toast({
          content: text,
          hideCallback: () => {
            callback && callback();
          }
        });
      }
      /**
       * 主要计算内容
       */
      mainCalculate() {
        this.defaults.beforeCallback();
        if (Device.getDeviceType() === "ios") {
          this.defaults.notSupportCallback();
        }
      }
    
    }
    export default CalculateRank;
    

    参考:理解 es6 class 中 constructor 方法 和 super 的作用

    相关文章

      网友评论

          本文标题:Day21 ES6 class

          本文链接:https://www.haomeiwen.com/subject/mchugqtx.html