Llamada de funciones de JavaScript

El código interno de la función JavaScript se ejecutará cuando algo la llame.

Llamar a la función JavaScript

Cuando la función esDefinircuando, el código interno de la función no se ejecutará.

Cuando la función esLlamarcuando, el código interno de la función se ejecutará.

Llamar a una función también se puede decir que "iniciar una función" o "ejecutar una función".

En este tutorial, utilizamos "Llamar"

Llamar a la función en forma de función

Instancia

function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2);           // Devolverá 20

Prueba por ti mismo

Estas funciones no pertenecen a ningún objeto. Pero en JavaScript, siempre existe un objeto global predeterminado.

En HTML, el objeto global predeterminado es la propia página HTML, todas las funciones anteriores

En el navegador, este objeto de página es la ventana del navegador. La función superior se convierte automáticamente en una función de ventana.

myFunction() y window.myFunction() son la misma función:

Instancia

function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // También devolverá 20

Prueba por ti mismo

Este es un método común para llamar a una función, pero no es un buen hábito.

Las variables globales, métodos o funciones pueden causar conflictos de nombres y vulnerabilidades en el objeto global.

this palabra clave

En JavaScript, se llama this lo que posee es el objeto que "posee" el código actual.

this el valor, al usarse en una función, es el objeto que "posee" la función.

Tenga en cuenta this No es una variable. Pertenece a la palabra clave. No puede cambiar this el valor.

el objeto global

Cuando se llama a un objeto sin objeto poseedor,this el valor se convierte en el objeto global.

En el navegador web, el objeto global es el objeto del navegador.

Este ejemplo utiliza this el valor devuelve este objeto window:

Instancia

var x = myFunction();            // x se convertirá en el objeto window
function myFunction() {
   return this;
}

Prueba por ti mismo

Llamar a una función como una función global causará this el valor se convierte en el objeto global.

Usar el objeto window como variable fácilmente puede hacer que el programa se colapse.

Llamar a la función como método

En JavaScript, puede definir una función como método de objeto.

El siguiente ejemplo crea un objeto (myObject) con dos propiedades (firstName y lastName) y un método (fullName):

Instancia

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // Devolverá "Bill Gates"

Prueba por ti mismo

El método fullName es una función. Esta función pertenece al objeto. myObject es el poseedor de la función.

se llama this lo que posee es el objeto que "posee" este código JavaScript. En este ejemplo,this el valor es myObject。

¡Pruebe esto! Modifique este método fullName para que devuelva this el valor:

Instancia

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // Devolverá [object Object] (el objeto poseedor)

Prueba por ti mismo

Llamar a la función como método de objeto, causará this El valor se convertirá en el objeto en sí mismo.

Llamar a la función a través del constructor de la función

Si la función se llama antes de new Si la palabra clave precede a una función, entonces es una llamada al constructor.

Parece que estás creando una nueva función, pero dado que las funciones JavaScript son objetos, en realidad estás creando un nuevo objeto:

Instancia

// Esto es el constructor de la función:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName = arg2;
}
// Se creará un nuevo objeto:
var x = new myFunction("Bill", "Gates");
x.firstName;                             // Devolverá "Bill"

Prueba por ti mismo

La llamada al constructor creará un nuevo objeto. El nuevo objeto heredará propiedades y métodos del constructor.

Dentro del constructor this La palabra clave no tiene valor.

this El valor se convertirá en un nuevo objeto creado al llamar a la función.