Javascript??黯???(?)??????д??
???????????? ???????[ 2013/9/27 11:30:23 ] ????????
????????????????"????????ó???"??????????Javascript????????????????????
???????????????????????????????Э?????????????????????......????????ò??????????????????????????????????
????Javascript??黯????????????????е?????????????£?????????????????????????????????????????????д?????顣
?????????Javascript?????????黯???????????????"??"(class)????????"???"(module)???(????????е?ECMAScript????????棬????????"??"??"???"???????????????????????á?)
????Javascript????????????????????е????л????У????"???"??Ч???????????????"Javascript??黯???"???????????????????á????????????????????????????Javascript????????????????
?????????д??
??????????????????????鷽????
???????????????(?????????????)???????????????????顣
????function m1(){
????//...
????}
????function m2(){
????//...
????}
????????????m1()??m2()??????????顣??????????????????
???????????????????????"???"??????????????????????????鷢????????????????????????俴???????????
????????????д??
?????????????????????????д????????????е?????????????????????檔
????var module1 = new Object({
????_count : 0??
????m1 : function (){
????//...
????}??
????m2 : function (){
????//...
????}
????});
????????????m1()??m2()?????????module1???????????????????????????????
????module1.m1();
???????????????д??????????????????????????????д?????磬????????????????????????????
????module1._count = 5;
??????????????к???д??
???????"??????к???"(Immediately-Invoked Function Expression??IIFE)??????????????г????????
????var module1 = (function(){
????var _count = 0;
????var m1 = function(){
????//...
????};
????var m2 = function(){
????//...
????};
????return {
????m1 : m1??
????m2 : m2
????};
????})();
????????????д?????????????????????_count??????
????console.info(module1._count); //undefined
????module1??Javascript???????д???????棬???????д?????м????
????????????
????????????????????????????????????????????????????飬????б??????"?????"(augmentation)??
????var module1 = (function (mod){
????mod.m3 = function () {
????//...
????};
????return mod;
????})(module1);
?????????????module1????????????·???m3()????????μ?module1??顣
?????塢??????(Loose augmentation)
????????????????У?????????????????????????????????????????????????????????????????д???????????е?????п???????????????????????????"??????"??
????var module1 = ( function (mod){
????//...
????return mod;
????})(window.module1 || {});
??????"?????"????"??????"??"??????к???"???????????????
??????????????????
?????????????????????????????ò???????????????????????
???????????????????????????????????????????????????顣
????var module1 = (function ($?? YAHOO) {
????//...
????})(jQuery?? YAHOO);
?????????module1?????????jQuery???YUI????????????(????????????)????????????module1?????????????????????????????????????????????????????????????????μ?Ben Cherry???????JavaScript Module Pattern: In-Depth????
?????????е??????????????????????????????????????顢??????????????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11