为了更好地掌握一些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 )
非常感谢你的帮助
答案 0 :(得分:0)
bind
method的使用等同于
$.subscribe = function(event, handler) {
o.on(event, handler);
};
$.unsubscribe = function(event, handler) {
o.off(event, handler);
};
$.publish = function(event, data) {
o.trigger(event, data);
};
只是定义那些具有吸引人的名字的全局帮助函数,因此您不必在on
上使用off
/ trigger
/ o
对象