1. Function.prototype.apply is the same as function.prototype. call.
  2. The first argument is always to specify the point of this in the function;
  3. The second argument starts differently. Apply passes in a collection, array, or class array with a lower index. Apply passes it to a function as an argument.
  4. The performance of Call is better than that of Apply. Usually, call can be used more, and the format of the call parameter is exactly the format required internally. Please refer to the performance comparison between Call and Apply

Apply () : two arguments, the first is the scope in which the function is run, and the second is the array of arguments (which can be instances of array or arguments objects). Call () : A variable number of arguments, the first being the scope of the function to run, and the remaining arguments passed to the function listed one by one. The two functions of apply() and call() are to pass parameters to functions and expand their scope. Whether to use apply() or call() depends entirely on which method of passing parameters to functions is most convenient.