posts - 82, comments - 269, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          jQuery筆記-插件開發(fā)小技巧

          Posted on 2008-02-18 19:47 itspy 閱讀(4092) 評論(2)  編輯  收藏 所屬分類: AJAX
          jQuery官方文檔上推薦開發(fā)插件時要按下面格式來寫,我第一次看源代碼時看到這樣的寫法,被郁悶了好半天。

          (function($) {
          // Code goes here
          })(jQuery);

          下面將記錄為什么這樣寫,這樣寫具體有哪些好處。
           
          其實上面這種方式等價于下面這種定義方式, 不過上面的方式更安全.與JAVA里面的隱藏類有點類似,這樣定義之后,很大程序上畢免了第三方的誤操作,從而破壞封裝性。
           
          上面的代碼等價于下面的代碼,我想這樣寫大家都能看明白了吧。
          var jQueryFucntion=function($) {
          // Code goes here
          //本文首發(fā)于 http://b.xfuse.cn

          jQueryFucntion(jQuery);
           

           
           
           
          (function($) {
          // Code goes here
          })
          上面定義了一個jQuery函數(shù),形參是$
           
           
          (function($) {
          // Code goes here
          })(jQuery);
          這個就是調用之前定義的函數(shù),然后把jQuery這個實參傳遞進去.
           
           
          這樣的好處是,我們在寫jQuery插件時,也可以使用$這個別名,而不會與prototype引起沖突.
           
          如果不通過上面這種方式定義,而end-use又使用了prototype, 那么就會形成無法調和的矛盾了.
           
           
           
           

          評論

          # re: jQuery筆記-插件開發(fā)小技巧  回復  更多評論   

          2008-10-24 14:27 by zjxnew
          “這樣的好處是,我們在寫jQuery插件時,也可以使用$這個別名,而不會與prototype引起沖突.”
          ......
          有誤導嫌疑

          # re: jQuery筆記-插件開發(fā)小技巧[未登錄]  回復  更多評論   

          2009-06-04 21:59 by snow
          對!其實jQuery原作者在寫源碼的時候已經(jīng)考慮到這個問題了.通過調用jQuery里的一個方法可以接觸這種沖突.
          主站蜘蛛池模板: 信丰县| 辽宁省| 儋州市| 西宁市| 苏尼特右旗| 嘉峪关市| 息烽县| 奈曼旗| 唐河县| 博爱县| 垦利县| 南丹县| 鹰潭市| 仙居县| 军事| 贡觉县| 光山县| 新竹市| 湘潭市| 平湖市| 新闻| 安吉县| 光山县| 根河市| 肥西县| 青川县| 甘肃省| 丰镇市| 远安县| 同心县| 城市| 尚志市| 嘉祥县| 内江市| 江孜县| 遂宁市| 慈利县| 翁牛特旗| 长海县| 宜兰县| 光山县|