arguments元気apply()です
関数を呼び出すときapplyは、 original を使用しても問題ありませんarguments。あなたの例では、この行を次の行に簡単に置き換えることができます。
this.addSelectedClass.apply(this, arguments);
argumentsとcall()はうまくありません
ただし、呼び出している場合は、関数に任意のオブジェクト/値の配列を渡したい場合は、実際の配列にcall変換する必要があります(これは呼び出しによって行われます)。そのため、渡したい引数の数が正確にわかっていて、それらを個別に渡す場合に通常使用されます。argumentsslice()call()
arguments実際の配列オブジェクトではありません。それらは (lengthたとえばプロパティを持っている) ように見えますが、そうではありません。
Mozilla 開発者ネットワークに関する議論
完全に明確にするための少しの説明
に関連するドキュメントは次のようにapply()なりcall()ます。
func.apply(thisArg[, argsArray]);
func.call(thisArg[, arg1[, arg2[, ...]]]);
これらのいずれかを使用して同じ機能を実行する場合があります。
使用apply()すると、すべての引数を一度に渡すことができます。通常、呼び出しから特定の引数を省略したり、実際の配列slice()に変換したりするために使用されます。arguments
使用するときcall()は、個々の引数と必要な数を渡します。配列に変換された引数を提供する場合、呼び出された関数は、その特定の配列で提供されるすべての引数を使用して、配列型の 1 つのパラメーターを取得します。
これでさらに問題が解決することを願っています。