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;
网友评论