如果想重写jQuery某个方法又不想直接改源码,你可以这样
改写unique()
方法改写的模式:
改写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);
//test
var 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);