Función Call de JavaScript

Reutilización de métodos

Usar call() Métodos, puede escribir métodos que se puedan usar en diferentes objetos.

Las funciones son métodos de objetos

En JavaScript, las funciones son métodos de objetos.

Si una función no es un método de objeto JavaScript, entonces es una función de objeto global (véase el capítulo anterior).

El siguiente ejemplo crea un objeto con tres propiedades (firstNamelastNamefullName)。

Ejemplo

var person = {
    nombre: "Bill",
    apellido: "Gates",
    fullName: function () {
        devolver this.firstName + " " + this.apellido;
    }
}
person.fullName();		// Devolverá "Bill Gates"

Prueba personal

La propiedad fullName es unaMétodo。El objeto person es el métodoPropietario

La propiedad fullName pertenece a Métodos del objeto person

Método call() de JavaScript

call() Los métodos son métodos JavaScript predefinidos.

Se puede usar para llamar a métodos de objetos propietarios como parámetros.

A través de call(),puede usar métodos que pertenecen a otro objeto.

Este ejemplo llama al método fullName de person y se utiliza para person1:

Ejemplo

var person = {
    fullName: function() {
        devolver this.firstName + " " + this.apellido;
    }
}
var person1 = {
    nombre: "Bill",
    apellido: "Gates",
}
var person2 = {
    nombre: "Steve",
    apellido: "Jobs",
}
person.fullName.call(person1);  // Devolverá "Bill Gates"

Prueba personal

Este ejemplo llama al método fullName de person y se utiliza para person2:

Ejemplo

var person = {
    fullName: function() {
        devolver this.firstName + " " + this.apellido;
    }
}
var person1 = {
    nombre: "Bill",
    apellido: "Gates",
}
var person2 = {
    nombre: "Steve",
    apellido: "Jobs",
}
person.fullName.call(person2);  // Devolverá "Steve Jobs"

Prueba personal

Método call() con parámetros

El método call() puede aceptar parámetros:

Ejemplo

var person = {
  nombreCompleto: function(ciudad, país) {
    devolver this.firstName + " " + this.apellido + "," + ciudad + "," + país;
  }
}
var person1 = {
  nombre: "Bill",
  apellido: "Gates"
}
person.fullName.call(person1, "Seattle", "USA");

Prueba personal