首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

jquery兑现aop

2012-09-19 
jquery实现aop?如果想重写jQuery某个方法又不想直接改源码,你可以这样改写unique()(function($){var _old

jquery实现aop?
如果想重写jQuery某个方法又不想直接改源码,你可以这样
改写unique()

(function($){     var _old = $.unique;//备份原始方法     $.unique = function(arr){         //如果是dom对象就使用原始方法        if (!!arr[0].nodeType){            return _old.apply(this,arguments);        } else {            //使用grep/inArray组合方法去重            return $.grep(arr,function(v,k){                return $.inArray(v,arr) === k;            });        }};})(jQuery); //testvar arr = ['first',7,true,2,7,true,'last','last'];$.unique(arr); // ["first", 7, true, 2, "last"]var arr = [1,2,3,4,5,4,3,2,1];$.unique(arr); // [1, 2, 3, 4, 5]


方法改写的模式:
(function($){     // store original reference to the method    var _old = $.fn.method;     $.fn.method = function(arg1,arg2){         if ( ... condition ... ) {           return  ....         } else {           // do the default           return _old.apply(this,arguments);        }    };})(jQuery);

热点排行