1. 程式人生 > >Javascript 設計模式 亨元(Flyweight)模式jQuery.single方法程式碼修正

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;

               };
            })();

希望能解決大家的疑惑。