PubSub Design Pattern 的 Jquery 语法解释

Jquery syntax explanation for PubSub Design Pattern

本文关键字:语法 解释 Jquery Design Pattern PubSub      更新时间:2023-09-26

为了更好地掌握一些Javacript和jQuery概念,我遇到了以下代码片段。

var o = $( {} );
$.subscribe = o.on.bind(o);
$.unsubscribe = o.off.bind(o);
$.publish = o.trigger.bind(o);
// Usage
$(document.body).on( 'click', function() {
   // ...yadada
   $.publish( 'clicketyClack' ); // Think Rocky Balboa yelling out the window: "Hey yo!"
});
// And some dude listening patiently for Rocky's voice.
$.subscribe( 'clicketyClack', function() {
        console.log("You can't win, Rock");
});

问题是我不太了解语法。什么意思?我们是否使用绑定函数扩展了 on 命名空间?

$.subscribe = o.on.bind(o); --> 
$.subscribe = $( {} ).on.bind($( {} ));

从 Jquery API:

.on( events [, selector ] [, data ], handler )
.bind( eventType [, eventData ], handler )

非常感谢您的帮助

bind方法的这种使用等效于

$.subscribe = function(event, handler) {
    o.on(event, handler);
};
$.unsubscribe = function(event, handler) {
    o.off(event, handler);
};
$.publish = function(event, data) {
    o.trigger(event, data);
};

这只是用朗朗上口的名称定义那些全局帮助程序函数,这样你就不必在该o对象上使用on/off/trigger