Javascript 設計模式 亨元(Flyweight)模式jQuery.single方法程式碼修正
阿新 • • 發佈:2019-02-14
今天閱讀了《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;
};
})();
希望能解決大家的疑惑。