- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Difference between Function.prototype.apply and Function.prototype.call in JavaScript
Function.prototype.apply and Function.prototype.call are methods that allow you to call a function with a specific this value and arguments. The main difference between the two is that apply lets you pass in an array of arguments, while call requires you to list the arguments one by one.
Function.prototype.apply
Function.prototype.apply is a method that allows you to call a function with a specific this value and an array of arguments.
Syntax
The syntax for using apply is −
func.apply(thisArg, argsArray)
Here thisArg is the value that will be used as this inside the function. argsArray is an array of arguments that will be passed to the function.
Example
Here’s an example of using apply to call a function −
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <div id="result"></div> <script> function sayHello(name) { return "Hello, " + name + "!"; } document.getElementById("result").innerHTML = sayHello.apply(null, ["John"]) </script> </body> </html>
Output
The above code will print the below output.
Hello, John!
As you can see, we passed null for thisArg because we don’t want to set a this value. And we passed an array for argsArray, which contains the argument “John”. The result is that the sayHello function is called with “John” as the name parameter.
Function.prototype.call
Function.prototype.call is a method that allows you to call a function with a specific this value and a list of arguments.
Syntax
The syntax for using call is
func.call(thisArg, arg1, arg2, ...)
Here thisArg is the value that will be used as this inside the function. arg1, arg2, ... are the arguments that will be passed to the function.
Example
Here’s an example of using the call to call a function −
<!doctype html> <html> <head> <title>Examples</title> </head> <body> <div id="result"></div> <script> function sayHello(name) { return "Hello, " + name + "!"; } document.getElementById("result").innerHTML = sayHello.call(null, ["John"]) </script> </body> </html>
Output
The above code will print the below output.
Hello, John!
As you can see, we passed null for thisArg because we don’t want to set a this value. And we passed “John” as the only argument. The result is that the sayHello function is called with “John” as the name parameter.
Differences between Function.prototype.apply and Function.prototype.call
The following table highlights the major differences between Function.prototype.apply and a Function.prototype.call −
Basis of comparison | Function.prototype.apply | Function.prototype.call |
---|---|---|
Definition | This method allows us to call a function with a specific this value and an array of arguments. | This method allows us to call a function with a specific this value and a list of arguments. |
Arguments | We pass an array of arguments. | We pass a list of the arguments. |
Speed | Because it does not create a new function, it is faster than the call. | Because it creates a new function each time it is called, it is slower than the apply. |
Usage |
|
|
Conclusion
In this tutorial, we discussed the differences between the apply and call methods. The main difference between these two is how they are accepting the arguments. There are different usages of these methods. You can check the usage row in the above table.
- Related Articles
- Importance of function prototype in C
- What is function prototype in C language
- Difference between singleton and prototype bean scope.
- Accessing variables in a constructor function using a prototype method with JavaScript?
- JavaScript function that lives on the prototype object of the Array class
- JavaScript Array prototype Constructor
- Adding a function for swapping cases to the prototype object of strings - JavaScript
- How does JavaScript .prototype work?
- What is the purpose of a function prototype in C/C++?
- What is the difference between call and apply in JavaScript?
- JavaScript Function Apply
- How to create an object with prototype in JavaScript?
- JavaScript Function Call
- What is Prototype-Based Clustering?
- How to access a JavaScript object using its own prototype?
- How to call jQuery function with JavaScript function?
