What is the difference between call and apply in javascript
In JavaScript, the call() method and the apply() method have the same function. The difference lies in the way of receiving parameters. When using the call() method, the parameters passed to the function must be listed one by one. Use When apply(), the parameter array is passed to the function.
The operating environment of this tutorial: Windows 10 system, JavaScript version 1.8.5, Dell G3 computer.
What is the difference between call and apply in javascript
The call() method calls a function with a specified this value and separately provided parameters (list of parameters).
Note: The function of this method is similar to the apply() method. The only difference is that the call() method accepts a list of several parameters, while the apply() method accepts a list containing multiple parameters. array.
Syntax
fun.call(thisObj[, arg1[, arg2[, ...]]])
Definition: Call a method of an object to replace the current object with another object.
Description:
The call method can be used to call a method instead of another object. The call method changes the object context of a function from the initial context to the new object specified by thisObj.
If the thisObj parameter is not provided, the Global object is used as thisObj.
Parameters
ThisObj
The this value specified when the fun function is running. It should be noted that the specified this value is not necessarily the real this value when the function is executed. If the function is in non-strict mode, the
specified as null and undefined will automatically point to the global value. Object (window object in browsers), and this whose value is a primitive value (number, string, Boolean value) will point to the automatic wrapping object of the primitive value.
arg1, arg2, ...
Specified parameter list.
Return value
The return result includes the specified this value and parameters.
apply()
apply() method calls a function with a specified this value and provided as an array (or array-like object) parameter.
Syntax
fun.apply(thisObj, [argsArray])
Definition: Apply a method of an object to replace the current object with another object.
Description:
If argsArray is not a valid array or is not an arguments object, a TypeError will be caused.
If neither argArray nor thisObj is provided, the Global object will be used as thisObj and no parameters can be passed.
Parameters
ThisObj
The this value specified when the fun function is running. It should be noted that the specified this value is not necessarily the real this value when the function is executed. If the function is in non-strict mode, the specified
will automatically point to the global object when it is null or undefined ( It is the window object in the browser), and this whose value is a primitive value (number, string, Boolean value) will point to the automatic wrapping object of the primitive value.
argsArray
An array or array-like object, the array elements of which will be passed to the fun function as separate parameters. If the value of this parameter is null or undefined, it means that no parameters need to be passed in. Starting from ECMAScript 5
, it is possible to use array-like objects.
Summary
Both have the same effect, they both bind obj (i.e. this) to thisObj. At this time, thisObj has the properties and methods of obj. In other words, thisObj "inherits" the properties and methods of obj.
The only difference is that apply accepts array parameters and call accepts continuous parameters.
The call() method and the apply() method have the same function. Their difference lies in the way they receive parameters. For call(), the first parameter is the value of this which does not change. What changes is that the remaining parameters are passed directly to the function. (When using the call() method, the parameters passed to the function must be listed one by one. When using apply(), the parameter array is passed to the function) The following code explains:
function add(c, d){ return this.a + this.b + c + d; } var o = {a:1, b:3}; add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16 add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34
Both call and apply It exists to change the context when a certain function is running. In other words, it is to change the pointer of this inside the function body. Because JavaScript functions have the concepts of "definition context" and "runtime context" and "context can be changed".
The functions of the two are exactly the same, but the way of accepting parameters is different. For example, there is a function fun defined as follows:
var fun = function(arg1, arg2) {};
can be called through fun.call(this, arg1, arg2); or fun.apply(this, [arg1, arg2]);. Among them, this is the context you want to specify, which can be any JavaScript object (everything in JavaScript is an object). call needs to pass the parameters in order, while apply puts the parameters in an array.
In JavaScript, the number of parameters of a function is not fixed, so in terms of applicable conditions, when your parameters clearly know the number, use call, and when you are not sure, use apply, and then push the parameters Pass it into the array. When the number of parameters is uncertain, all parameters can be traversed inside the function through the arguments array.
Related recommendations: javascript learning tutorial
The above is the detailed content of What is the difference between call and apply in javascript. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Guide to Table Border in HTML. Here we discuss multiple ways for defining table-border with examples of the Table Border in HTML.

This is a guide to Nested Table in HTML. Here we discuss how to create a table within the table along with the respective examples.

Guide to HTML margin-left. Here we discuss a brief overview on HTML margin-left and its Examples along with its Code Implementation.

Guide to HTML Table Layout. Here we discuss the Values of HTML Table Layout along with the examples and outputs n detail.

Guide to HTML Input Placeholder. Here we discuss the Examples of HTML Input Placeholder along with the codes and outputs.

Guide to the HTML Ordered List. Here we also discuss introduction of HTML Ordered list and types along with their example respectively

Guide to Moving Text in HTML. Here we discuss an introduction, how marquee tag work with syntax and examples to implement.

Guide to HTML onclick Button. Here we discuss their introduction, working, examples and onclick Event in various events respectively.
