【发布时间】:2015-05-27 13:07:03
【问题描述】:
我正在尝试在我的 NodeJS 应用程序中扩展数组拼接功能,不幸的是它不起作用,我得到了格式错误的结果。看来我的数组不是一个:
var EggDBArray = function(){
}
EggDBArray.prototype = Array.prototype;
EggDBArray.prototype.splice=(function(){
var original = Array.prototype.splice;
return function() {
return original.apply(this,arguments);
};
})();
当我在 EggDBArray 上运行 splice 时,我没有得到 [] 而是 {}
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()?
【问题讨论】:
-
你想达到什么目的?
-
我的“return original.apply(this,arguments);”之前的处理
-
看起来不错。为我工作。 Chrome 控制台。
-
EggDBArray不是数组 -
目前你实际上正在覆盖
Array.prototype.splice,这是有意的吗?
标签: javascript arrays node.js prototype