通过下面的例子,可以举一反三,掌握其他js对象的方法拓展
/* * 拓展数组push方法 */ const ArrarMethodExtend = []; //拓展数组push方法 var ExtendPush = Array.prototype['push']; ArrayMethodExtend['push'] = function () { var record = arguments[0]; //do something return ExtendPush.apply(this, arguments); }; //拓展数组concat方法 var ExtendConcat = Array.prototype['concat']; ArrayMethodExtend['concat'] = function () { for(var i = 0; i < arguments.length; i++){ var arg = arguments[i]; if (isJson(arg)) { //do something }else if (isArray(arg)) { for(var j = 0; j < arg.length; j++){ //do something } }else{ //清除非法参数 arguments.splice(i--, 1); } } return ExtendConcat.apply(this, arguments); }; //拓展数组splice方法 var ExtendSplice = Array.prototype['splice']; ArrayMethodExtend['splice'] = function () { if(arguments.length > 2){//替换或插入 for(var i = 2; i < arguments.length; i++){ var arg = arguments[i]; if (isJson(arg)) { //do something }else if (isArray(arg)) { for(var j = 0; j < arg.length; j++){ //do something } }else{ //清除非法参数 arguments.splice(i--, 1); } } } return ExtendSplice.apply(this, arguments); }; //应用 var list = []; list.__proto__ = ArrayMethodExtend;