| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Function/call | [Back] [Original] |
Get to know MDN better
Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since julio de 2015.
El mtodo call() llama a una funcin con un valor dado this y con argumentos provistos individualmente.
function.call(thisArg[, arg1[, arg2[, ...]]])
thisArg OpcionalEl valor a usar como this cuando se llama a function.
Advertencia:
En ciertos casos, thisArg puede no ser el valor actual visto por el mtodo.
Si el mtodo es una funcin en non-strict mode, null y undefined sern reemplazados con el objeto global, y valores primitivos sern convertidos a objetos.
arg1, arg2, ...Argumentos para el objeto.
El resultado de llamar a la funcin con el this especificado y los argumentos.
call() permite que una funcin/mtodo que pertenece a un objeto, ser asignada y llamada para un objeto diferente.
call() provee un nuevo valor de this a la funcin/mtodo. Con call(), puedes escribir un mtodo una vez y heredarlo a otro objeto, sin tener que reescribir el mtodo en el nuevo objeto.
Nota:
Mientras la sintaxis de esta funcin es casi identica a la funcin apply(), la diferencia fundamental es que call() acepta una lista de argumentos, mientras apply() accepta un arreglo sencillo de argumentos.
call para encadenar constructores para un objetoPuede usar call para encadenar constructores para un objeto (similar a Java).
En el siguiente ejemplo, el constructor para el objeto Producto es definido con dos parametros, nombre y precio.
Otras dos funciones Comida y Juguete invocan a Producto, pasndo this, nombre y precio. Producto inicializa las propiedades nombre y precio, ambas funciones especializadas definen la categoria.
function Producto(nombre, precio) {
this.nombre = nombre;
this.precio = precio;
if (precio < 0)
throw RangeError(
'No se puede crear el producto "' + nombre + '" con un precio negativo',
);
return this;
}
function Comida(nombre, precio) {
Producto.call(this, nombre, precio);
this.categoria = "comida";
}
Comida.prototype = new Producto();
function Juguete(nombre, precio) {
Producto.call(this, nombre, precio);
this.categoria = "juguete";
}
Juguete.prototype = new Producto();
var queso = new Comida("feta", 5);
var diversion = new Juguete("robot", 40);
call para invocar una funcin annimaEn este ejemplo, creamos una funcin annima y usamos call para invocarla en cada objeto en un arreglo.
El propsito principal de la funcin annima aqu es agregar una funcin print a cada objeto, el cual puede imprimir el ndice correcto en el arreglo.
Nota:
Pasar el objeto como valor this no es estrictamente necesario, pero se hace con propsito explicativo.
var animales = [
{ especie: "Leon", nombre: "Rey" },
{ especie: "Whale", nombre: "Fail" },
];
for (var i = 0; i < animales.length; i++) {
(function (i) {
this.imprimir = function () {
console.log("#" + i + " " + this.especie + ": " + this.nombre);
};
this.imprimir();
}).call(animales[i], i);
}
This page was last modified on 29 may 2026 by MDN contributors.
FunctionObject/FunctionYour blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |