通过下面的例子,可以举一反三,掌握其他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;