Javascript 設計模式 亨元(Flyweight)模式jQuery.single方法代碼修正

今天閱讀了《Javascript 設計模式》的第九章亨元(Flyweight)模式,在9.13.7(110頁),經測試發現了實現jQuery.single方法的代碼有誤,錯誤代碼如下:

            jQuery.single = (function(o){

               var collection = jQuery([1]);
               return function(element) {

                   // 將元素賦值給集合:
                   collection[0] = element;

                    // 返回集合:
                   return collection;

               };
            });

使用書上的示例代碼(如下)測試發現錯誤。

            $('div').bind('click', function(){
                //報錯:next不是一個函數
               var html = jQuery.single(this).next().html();
               console.log(html);
            });

原因是漏了一個自調用的括號,而且參數o並沒有什麼卵用,經過修改並測試無誤,代碼如下:

            jQuery.single = (function(){

               var collection = jQuery([1]);
               return function(element) {

                   // 將元素賦值給集合:
                   collection[0] = element;

                    // 返回集合:
                   return collection;

               };
            })();

希望能解決大家的疑惑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章