Chamada de Função JavaScript

O código interno da função JavaScript será executado quando 'qualquer coisa' a chamar.

Chamar função JavaScript

Quando a função éDefinirquando, o código interno da função não será executado.

Quando a função éChamarquando, o código interno da função será executado.

Chamar uma função também pode ser dito 'iniciar uma função' ou 'executar uma função'.

Neste tutorial, usamos “Chamar”。

Chamar a função em forma de função

Instância

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

Experimente você mesmo

Essas funções não pertencem a nenhum objeto. Mas no JavaScript, sempre existe um objeto global padrão.

No HTML, o objeto global padrão é a página HTML em si, todas as funções acima pertencem à página HTML.

No navegador, este objeto da página é a janela do navegador. A função acima se torna automaticamente uma função da janela.

myFunction() e window.myFunction() são a mesma função:

Instância

function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // Também retornará 20

Experimente você mesmo

Este é um método comum para chamar uma função, mas não é um hábito bom.

Variáveis globais, métodos ou funções globais podem facilmente causar conflitos de nomes e vulnerabilidades no objeto global.

this palavra-chave

em JavaScript, chamado de this a coisa, significa o objeto que possui o código atual.

this o valor, ao usar na função, é o objeto que possui a função.

Atenção this não é uma variável. Pertence a uma palavra-chave. Você não pode mudar this o valor.

o objeto global

Quando chama um objeto sem objeto dono,this o valor se torna o objeto global.

No navegador da web, o objeto global é o objeto do navegador.

Este exemplo usa this o valor retornará este objeto window:

Instância

var x = myFunction();            // x será o objeto window
function myFunction() {
   return this;
}

Experimente você mesmo

Chamar uma função como função global causará this o valor se torna o objeto global.

Usar o objeto window como variável pode fácilmente causar falha no programa.

Chamar uma função como método

No JavaScript, você pode definir uma função como método de objeto.

O exemplo a seguir cria um objeto (myObject), com duas propriedades (firstName e lastName), e um método (fullName):

Instância

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

Experimente você mesmo

O método fullName é uma função. A função pertence ao objeto. myObject é o dono da função.

chamado de this O objeto que possui a coisa, é o objeto "possui" este código JavaScript. Neste exemplo,this o valor é myObject.

Teste isso! Modifique o método fullName para retornar this o valor:

Instância

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

Experimente você mesmo

Chamar a função como método de objeto causará this seu valor se tornará o objeto em si.

chamando a função através do construtor de função

e a função for chamada antes new Se a palavra-chave for

Parece que você está criando uma nova função, mas como as funções JavaScript são objetos, na verdade você está criando um novo objeto:

Instância

// Este é o construtor da função:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName = arg2;
}
// Foi criado um novo objeto:
var x = new myFunction("Bill", "Gates");
x.firstName;                             // retornará "Bill"

Experimente você mesmo

A chamada do construtor criará um novo objeto. Este novo objeto herdará propriedades e métodos do construtor.

dentro do construtor this A palavra-chave não tem valor.

this seu valor se tornará um novo objeto criado ao chamar a função.