Should you use call for normal function invocation?
No. If you do not need to set this, just call the function normally: fn(arg) instead of fn.call(null, arg). Use call only when you need to set a specific this value.
Verify This Answer
Cross-check this information using these trusted sources:
More FAQs in call, apply, and bind Best Practices
Prefer spread: Math.max(...arr) instead of Math.max.apply(null, arr). Spread is more readable and modern. Use apply only in old codebases without spread support.
Prefer arrow functions for callbacks: setTimeout(() => obj.method(), 1000) instead of setTimeout(obj.method.bind(obj), 1000). Arrows are more readable. Use bind for permanent binding in class constructors.
For method borrowing: Array.prototype.slice.call(arguments). This is still the standard way to convert array-like objects to arrays, although Array.from(arguments) is a modern alternative.
Still have questions?
Browse all our FAQs or reach out to our support team
