我试图在我的NodeJS应用程序中扩展Array splice功能,但不幸的是它没有工作,我得到了错误的结果。看来我的阵列不是一个:
var EggDBArray = function(){
}
EggDBArray.prototype = Array.prototype;
EggDBArray.prototype.splice=(function(){
var original = Array.prototype.splice;
return function() {
return original.apply(this,arguments);
};
})();
当我在EggDBArray上运行拼接时,我得不到[]但{}
console.log(myArray);
{ '0': { FIELD: 'a', FIELD_1: 'b', FIELD_2: 'c' },
'1': { FIELD: 'd', FIELD_1: 'e', FIELD_2: 'f' },
'2': { FIELD: 'g', FIELD_1: 'h', FIELD_2: 'i' },
'3': { FIELD: 'j', FIELD_1: 'k', FIELD_2: 'l' },
'4': { FIELD: 'm', FIELD_1: 'n', FIELD_2: 'o' },
'5': { FIELD: 'o', FIELD_1: 'p', FIELD_2: 'q' },
'6': { FIELD: 'u', FIELD_1: 'v', FIELD_2: 'w' },
'7': { FIELD: 'r', FIELD_1: 's', FIELD_2: 't' },
'8': { FIELD: 'x', FIELD_1: 'y', FIELD_2: 'z' },
'9': { FIELD: 'a', FIELD_1: 'b', FIELD_2: 'c' },
'10': { FIELD: 'd', FIELD_1: 'e', FIELD_2: 'f' },
'11': { FIELD: 'm', FIELD_1: 'n', FIELD_2: 'o' },
'12': { FIELD: 'o', FIELD_1: 'p', FIELD_2: 'q' },
'13': { FIELD: 'r', FIELD_1: 's', FIELD_2: 't' },
'14': { FIELD: 'u', FIELD_1: 'v', FIELD_2: 'w' },
'15': { FIELD: 'x', FIELD_1: 'y', FIELD_2: 'z' },
'16': { FIELD: 'g', FIELD_1: 'h', FIELD_2: 'i' },
'17': { FIELD: 'j', FIELD_1: 'k', FIELD_2: 'l' },
'18': { FIELD: 'a', FIELD_1: 'b', FIELD_2: 'c' },
'19': { FIELD: 'd', FIELD_1: 'e', FIELD_2: 'f' },
'20': { FIELD: 'g', FIELD_1: 'h', FIELD_2: 'i' },
'21': { FIELD: 'j', FIELD_1: 'k', FIELD_2: 'l' },
'22': { FIELD: 'm', FIELD_1: 'n', FIELD_2: 'o' },
'23': { FIELD: 'o', FIELD_1: 'p', FIELD_2: 'q' },
'24': { FIELD: 'r', FIELD_1: 's', FIELD_2: 't' },
'25': { FIELD: 'u', FIELD_1: 'v', FIELD_2: 'w' },
'26': { FIELD: 'x', FIELD_1: 'y', FIELD_2: 'z' },
length: 27 }
我找到了"例子"在这里:How to extend Array.prototype.push()?
答案 0 :(得分:1)
感谢Gist,我找到了解决方案。 正如我们所看到的(在Chrome控制台之外),EddDBArray不是一个数组。 现在它完美无缺:
-lcomplex
关于proto
的其他有用链接我在拼接动作EggDBArray
之前用它进行预处理