js-設計モード、観察者モード


デザインモデルは別名観察者モード、購読モードと呼ばれていますが、なぜここまでこじれているのか分かりません.
要するに、彼は一つのイベントをカスタマイズして、複数の関数を結びつけます.このカスタマイズイベントを呼び出したら、彼は彼の対応する関数を実行します.
カスタムイベントのように3つの関数に対応しています.このカスタムイベントを呼び出すと、彼はこの3つの関数を実行します.
 




    
    
    Document



    
        // 1.            ,  addEvent emit
        jc = {
            //      ,         
            //  addList:{"    ":["fn1","fn2"]},
            addList: {

            },
            //       ,       
            addEvent: function (eventName, eventFn) {
                //   addList              
                if (this.addList[eventName] == undefined) {
                    //                  ,
                    this.addList[eventName] = []
                }
                //      addList[eventName]    
                this.addList[eventName].push(eventFn)
            },
            //        ,  addList[eventName]       ,message        
            emit: function (eventName, msg) {
                this.addList[eventName].forEach(function (item) {
                    item(msg)
                })
            },
            cc:function(){
                console.log(this.addList)
            } 
        }
        //             emit  msg  ,  
        // 1.  jc.addEvent,          addList     addList{"swww",[function fn1(msg)]} 
        jc.addEvent("swww", function fn1(msg) {
            console.log(msg)
            console.log("     1")

        })
        jc.addEvent("swww", function fn2(msg) {
            console.log(msg)
            console.log("     2")

        })


        jc.emit("swww", "        ")