JavaScript数组的原型函数
我正在使用一个API,它可以接受多个数组,我在其中使用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
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(事件列表)代码>