Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. JavaScript
  3. Referencia de JavaScript
  4. Objetos globales
  5. Function
  6. Function.prototype.call()

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

Function.prototype.call()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨julio de 2015⁩.

Resumen

El métodocall() llama a una función con un valor dadothis y con argumentos provistos individualmente.

Sintaxis

function.call(thisArg[, arg1[, arg2[, ...]]])

Parametros

thisArgOpcional

El valor a usar comothis cuando se llama afunction.

Advertencia:En ciertos casos,thisArg puede no ser el valor actual visto por el método.

Si el método es una función ennon-strict mode,null yundefined serán reemplazados con el objeto global, y valores primitivos serán convertidos a objetos.

arg1, arg2, ...

Argumentos para el objeto.

Valor de retorno

El resultado de llamar a la función con elthis especificado y los argumentos.

Descripción

call() permite que una función/método que pertenece a un objeto, ser asignada y llamada para un objeto diferente.

call() provee un nuevo valor dethis a la función/método. Concall(), puedes escribir un método una vez y heredarlo a otro objeto, sin tener que reescribir el método en el nuevo objeto.

Nota:Mientras la sintaxis de esta función es casi identica a la funciónapply(), la diferencia fundamental es quecall() acepta unalista de argumentos, mientrasapply() accepta unarreglo sencillo de argumentos.

Ejemplos

Usandocall para encadenar constructores para un objeto

Puede usarcall para encadenar constructores para un objeto (similar a Java).

En el siguiente ejemplo, el constructor para el objetoProducto es definido con dos parametros,nombre yprecio.

Otras dos funcionesComida yJuguete invocan aProducto, pasándothis,nombre yprecio.Producto inicializa las propiedadesnombre yprecio, ambas funciones especializadas definen lacategoria.

js
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);

Usandocall para invocar una función anónima

En este ejemplo, creamos una función anónima y usamoscall para invocarla en cada objeto en un arreglo.

El propósito principal de la función anónima aquí es agregar una funciónprint a cada objeto, el cual puede imprimir el índice correcto en el arreglo.

Nota:Pasar el objeto como valorthis no es estrictamente necesario, pero se hace con propósito explicativo.

js
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);}

Ver también

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp