我正在使用一个可以接受多个数组的API,我使用apply()
来传递数组,但数组包含一个我似乎无法从中移除的原型函数个别阵列。最终发生的是原型功能正在执行。
这是原型功能:
if ( !Array.prototype.last ) { Array.prototype.last = function(){ return this[this.length - 1]; }}
例如,当我记录每个数组时,我在eventList数组中看到以下内容:
["name1", "index1", "value1", last: function]
["name2", "index2", "value2", last: function]
["name3", "index3", "value3", last: function]
然后推送数组:
apiName.push.apply( apiName, eventList );
我已尝试array.pop()
删除最后一个'每个阵列都有功能,但无济于事。
原型函数如何首先在数组中结束,如何防止在apply()中调用它?
感谢您的任何见解!
答案 0 :(得分:1)
数组是JavaScript中的对象。它们可以像Object一样拥有属性和原型。
例如:
var a = [];
a.foo = "bar";
这完全有效。但是数组中的"bar"
是吗?
我们问:
console.log(a.length); // 0
console.log(a.foo); // "bar"
所以:没有,它不是中的,但它确实作为Object的属性存在。
就像使用属性向原型中添加内容不会影响.length
的值。
在登录时看到自定义原型有点不幸(令人困惑),但我会将其归因于调试器中的自定义。