美文网首页
简单的依赖注入(控制反转)实现

简单的依赖注入(控制反转)实现

作者: halapro_liu | 来源:发表于2019-01-16 00:14 被阅读83次

    手写一个简单的依赖注入:

    /**
     * @description 依赖注入实现(Ioc)
     * @author halapro.liu
     * @class App
     */
    class App {
      static modules = []
      constructor (options) {
        this.options = options
        this.init()
      }
      init () {
        window.addEventListener('DOMContentLoaded', () => {
          this.initModules()
          this.options.onReady(this)
        })
      }
      static use (module) {
        Array.isArray(module) ? module.map(item => App.use(item)) : App.modules.push(module)
      }
      initModules () {
        App.modules.map(item => module.init && typeof module.init === 'function' && module.init(this))
      }
    }
    
    class Router {
      init (app) {
        app.router = new Router(app.options.router)
      }
    }
    
    App.use(Router)
    new App({
      router: {
        mode: 'history'
      },
      onReady (app) {
        console.log(app)
      }
    })
    

    相关文章

      网友评论

          本文标题:简单的依赖注入(控制反转)实现

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