WeChatウィジェットPageコンストラクション関数を拡張し、ライフサイクル関数を変更


BBではなく、直接本題
一.共通メソッドをPageにバインドする
  • 単一バインド
    const oldPage = Page
    Page = function(app) {
      //              ,    
      app.util = function() {}
      
      return oldPage(app)
    }
  • バインディング、ファイルバインディング
    const util = require('./util.js');  //         util  exports  
    const oldPage = Page
    Page = function(app) {
      let newPage = Object.assign({}, util, app)
      
      return oldPage(newPage)
    }
  • 二.拡張、ライフサイクル関数の変更
    const oldPage = Page
    Page = function(app) {
      app.onLoad = function(options) { //       function,          ,   this    
          console.log("  onLoad");
      
          // onLoad      page        ,     this   page  
          //      call    ,    app.onLoad(),  onLoad  this  app    
          //       page.js Page(app)           page  
          if(typeof app.onLoad === 'function') {
              app.onLoad.call(this, options); 
          }
      }
      
      return oldPage(app)
    }

    ps.jsのthisに関する知識をもっと系統的に理解したいなら、ここをスタンプしてもいいです.
    三.使用
    自分で書くときは、カスタムコンテンツをjsファイルに個別にカプセル化し、app.jsでこのファイルを参照すればいい
    require('./init.js'); //    
    App({
      onLaunch: function (options) {
      }
    
    })