配列を渡すために使用している複数の配列を受け入れることができる 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() で呼び出されないようにするにはどうすればよいでしょうか?
洞察をありがとう!