如果想重写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);
没有评论:
发表评论