obj.call(thisObj, arg1, arg2, ...);
obj.apply(thisObj, [arg1, arg2, ...]);
Both have the same function, both bind obj (that is, this) to thisObj. At this time, thisObj has the properties and methods of obj. Or thisObj "inherits" the properties and methods of obj.
The only difference is that apply accepts array parameters, and call accepts continuous parameters.