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