我使用jQuery一段時間,但通常jQuery非常簡單。我剛看了一些視頻教程,其中作者使用了一種叫做Pub Sub Pattern的東西。我從來沒有聽說過,所以我搜索了#1和谷歌的解釋:用這個例子瞭解jQuery&Pub Sub模式
但它仍然不是很清楚,我,尤其是因爲這是代碼由上述教程的作者使用。所以,我會在這裏粘貼代碼,如果你能給我解釋:
這裏是pubsub.js第一.js文件命名,我不明白:
(function($) {
var o = $({}); // ??? what is this ???
$.subscribe = function() { // ??? and this ???
o.on.apply(o, arguments); // ??? o.on.apply(o, arguments) ???
};
$.unsubscribe = function() { // ??? and this ???
o.off.apply(o, arguments); // ??
};
$.publish = function() { // ??? and this ???
o.trigger.apply(o, arguments); // ?? o.trigger.apply(o, arguments); ??
};
}(jQuery));
我知道,使用jQuery,你可以使用$(document).ready()
或$(function()
,但我從來沒有見過(function($) { ... }(jQuery));
- 這是什麼意思/做什麼?另外,我不明白的代碼的其餘部分...
2.下一個文件是app.js,它包含:
(function() {
$.subscribe('form.submitted', function() {
$('.flash').fadeIn(500).delay(1000).fadeOut(500);
})
});
這是什麼實際上做?再次,什麼(function() { ... });
意味着/做什麼?至於其餘的代碼,你可以向我解釋$.subscribe('form.submitted', function() {
?
最後,我們有這樣的事情:
$.publish('form.submitted', form); // publish?
這也是我不清楚。
我明白,這一切都是一個基本的實現PubSub的模式使用jQuery的,但我還是不明白爲什麼會有人這樣做(通過使用這種模式),我看了that answer on Stackoverflow,但它的對我而言仍然不清楚......我猜如果我理解了這個代碼,那麼爲什麼以及何時使用這種模式會變得更加清晰。
簡短的回答就是將它想像爲綁定到對象的自定義事件。另見[什麼是(函數(){})()結構](http://stackoverflow.com/questions/8228281/what-is-the-function-construct-in-javascript) – charlietfl