ES6使用实践总结

【1】ES6中实例对象不能调用静态方法

Java中其实是可以的,虽然IDEA会提示但是编译器会通过。

如下所示,封装一个Toast类(这里以小程序中使用为例):

export default class Toast{
    static showToLogin( title, duration) {
        wx.showToast({
            title: title?title:'请先登录!',
            duration: duration ? duration : 2000,
            mask: true,
            image: "/images/icon/fail.png",
            success: function () {
              setTimeout(function () {
                wx.switchTab({
                  url: '/pages/my/my',
                })
              }, duration ? duration : 2000,);
            }
          });
    }
  
   static show(icon, title, duration) {
        if (icon === 'loading') {
            wx.showToast({
                title: title?title:'加载中...',
                icon: 'loading',
                duration: duration ? duration : 2000,
            })
        } else if (icon === 'success') {
            wx.showToast({
                title: title?title:'请求成功!',
                icon: 'success',
                duration: duration ? duration : 2000,
            })
        } else if (icon === 'warn') {
            wx.showToast({
                title: title,
                duration: duration ? duration : 2000,
                image: '../images/icon/fail.png'
            })
        } else if (icon === 'fail') {
            wx.showToast({
                title: title?title:'请求失败!',
                duration: duration ? duration : 2000,
                image: '../images/icon/fail.png'
            })
        }
    }
}

index.js中引入并测试:

//index.js
import Toast from "../../utils/toast.js";
let toast=new Toast();

  onLoad: function () {
    toast.show('loading',null,null);
    // Toast.showToLogin(null,null);
}

Toast.showToLogin是ok的,类调用静态方法,java中也一样。但是toast.show('loading',null,null);就会报错,如下提示:
ES6使用实践总结_第1张图片
statis show改为show ,也就是非静态方法则OK!

你可能感兴趣的:(Vue,小程序)