Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript数组的原型函数_Javascript_Arrays_Prototype_Apply - Fatal编程技术网

JavaScript数组的原型函数

JavaScript数组的原型函数,javascript,arrays,prototype,apply,Javascript,Arrays,Prototype,Apply,我正在使用一个API,它可以接受多个数组,我在其中使用apply()传递数组,但数组包含一个原型函数,我似乎无法从单个数组中删除该函数。最终发生的是正在执行的原型函数 这是原型功能: if(!Array.prototype.last){Array.prototype.last=function(){返回此[this.length-1];}} 例如,当我记录每个阵列时,我在eventList阵列中看到以下内容: ["name1", "index1", "value1", last: functio

我正在使用一个API,它可以接受多个数组,我在其中使用
apply()
传递数组,但数组包含一个原型函数,我似乎无法从单个数组中删除该函数。最终发生的是正在执行的原型函数

这是原型功能:
if(!Array.prototype.last){Array.prototype.last=function(){返回此[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()
删除每个数组上的“last”函数,但没有效果

原型函数首先是如何在数组中结束的,我如何防止在apply()中调用它


谢谢你的洞察力

数组是JavaScript中的对象。它们可以像对象一样具有属性和原型

例:

这是完全正确的。但是
“bar”
是否在数组中

让我们问问:

console.log(a.length); // 0
console.log(a.foo); // "bar"
因此:,它不在数组中,但它确实作为对象的属性存在

就像属性一样,向原型添加内容不会影响
.length
的值


在日志记录时看到定制原型有点令人遗憾(困惑),但我认为这是调试器中的定制。

数组是JavaScript中的对象。它们可以像对象一样具有属性和原型

例:

这是完全正确的。但是
“bar”
是否在数组中

让我们问问:

console.log(a.length); // 0
console.log(a.foo); // "bar"
因此:,它不在数组中,但它确实作为对象的属性存在

就像属性一样,向原型添加内容不会影响
.length
的值

不幸的是(令人困惑的是),您在日志记录时看到了自定义原型,但我将其归因于调试器中的自定义。

使用apply()还会运行该原型函数吗?不,
apply()
只运行您正在应用的函数。如果改用
concat()
,可能会更容易些<代码>apiName=apiName.concat(事件列表)使用apply()还会运行原型函数吗?不,
apply()
只运行您正在应用的函数。如果改用
concat()
,可能会更容易些<代码>apiName=apiName.concat(事件列表)