1. class EventPublic {
    2. constructor() {
    3. this.event = {}
    4. }
    5. $on(type, callback) {
    6. if (!this.event[type]) {
    7. this.event[type] = [callback]
    8. } else {
    9. this.event[type].push(callback)
    10. }
    11. }
    12. $emit(type, ...args) {
    13. if (!this.event[type]) {
    14. return;
    15. }
    16. this.event[type].forEach(res=> {
    17. res.apply(this, args)
    18. })
    19. }
    20. $off(type, callback) {
    21. if (!this.event[type]) {
    22. return;
    23. }
    24. this.event[type] =this.event[type].filter(res=> {
    25. return res!=callback
    26. })
    27. }
    28. //执行一次
    29. $once(type, callback) {
    30. functionf() {
    31. callback();
    32. this.$off(type, f)
    33. }
    34. this.$on(type, f)
    35. }
    36. }