Método call(): Llama al método, tomando como argumento el objeto propietario. La palabra clave this se refiere al ‘propietario’ de la función o el objeto al que pertenece. Podemos llamar a un método que se puede usar en diferentes objetos.
Sintaxis:
object.objectMethod.call( objectInstance, arguments )
Parámetros: Acepta dos parámetros como se mencionó anteriormente y se describe a continuación:
- objectInstance: contiene la instancia de un objeto.
- argumentos: El método call() toma los argumentos separados por comas.
Método apply(): El método apply() se usa para escribir métodos, que se pueden usar en diferentes objetos. Es diferente de la función call() porque toma los argumentos como una array.
Sintaxis:
object.objectMethod.apply(objectInstance, arrayOfArguments)
Parámetros: Acepta dos parámetros como se mencionó anteriormente y se describe a continuación:
- objectInstance: contiene la instancia de un objeto.
- arrayOfArguments: El método apply() toma la array de argumentos.
Diferencia entre el método call() y apply(): La única diferencia es que el método call() toma los argumentos separados por comas, mientras que el método apply() toma la array de argumentos.
Ejemplo 1: Este ejemplo usa el método call() para llamar a una función.
html
<!DOCTYPE html> <html> <head> <title>call() method</title> </head> <body style = "text-align:center;"> <h1 style = "color:green;" > GeeksForGeeks </h1> <button onClick="fun()"> click </button> <p id="GFG"></p> <!-- Script to use call() method to call function --> <script> function fun() { let p = { fullName: function(addr1, addr2) { return this.fName + " " + this.lName + ", " + addr1 + ", " + addr2; } } let p1 = { fName:"GFGfName", lName: "GFGlName", } let x = p.fullName.call(p1, "India", "USA"); document.getElementById("GFG").innerHTML = x; } </script> </body> </html>
Producción:
- Antes de hacer clic en el botón:
- Después de hacer clic en el botón:
Ejemplo 2: este ejemplo hace el mismo trabajo usando el método apply().
HTML
<!DOCTYPE html> <html> <head> <title>JavaScript apply() method</title> </head> <body style = "text-align:center;"> <h1 style = "color:green;" > GeeksForGeeks </h1> <button onClick="fun()"> click </button> <p id="GFG"></p> <script> function fun() { let p = { fullName: function(addr1, addr2) { return this.fName + " " + this.lName + ", " + addr1 + ", " + addr2; } } let p1 = { fName:"GFGfName", lName: "GFGlName", } let x = p.fullName.apply(p1, ["India", "USA"]); document.getElementById("GFG").innerHTML = x; } </script> </body> </html>
Producción :
- Antes de hacer clic en el botón:
- Después de hacer clic en el botón:
Entendamos las diferencias en forma tabular:
método call() | método apply() | |
1. | Se usa para escribir un método que se puede usar en diferentes objetos. | Se utiliza para escribir métodos, que se pueden utilizar en diferentes objetos. |
2. | Es un método predefinido en Javascript. | Su valor de retorno es el resultado de la función de llamada junto con este valor y argumentos. |
3. | Se usa para que un objeto use un método que pertenece a un objeto diferente. | Podemos usar una lista con esta función en lugar de la array |
4. | Este método también puede aceptar parámetros. | Este método toma el parámetro como una array. |
5. |
Sintaxis -: object.objectMethod.call( objectInstance, argumentos ) |
Sintaxis -: objeto.objectMethod.apply(objectInstance, arrayOfArguments) |
Publicación traducida automáticamente
Artículo escrito por PranchalKatiyar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA