Função Apply do JavaScript

métodos de reutilização

através apply() Métodos, você pode escrever métodos para diferentes objetos.

método apply() do JavaScript

apply() Métodos ao call() Métodos muito semelhantes:

Neste exemplo,person do fullName O método foiaplicaçãoaté person1:

Exemplo

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

Experimente você mesmo

Diferenças entre call() e apply()

A diferença é:

call() Métodos que aceitam parâmetros separadamente.

apply() Métodos que aceitam parâmetros em forma de array.

Se você quiser usar um array em vez de uma lista de parâmetros, então apply() Muito conveniente.

Método apply() com parâmetros

apply() Métodos que aceitam parâmetros em forma de array:

Exemplo

var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:\"Bill\",
  lastName: "Gates"
}
person.fullName.apply(person1, ["Oslo", "Norway"]);

Experimente você mesmo

e call() Métodos de comparação:

Exemplo

var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:\"Bill\",
  lastName: "Gates"
}
person.fullName.call(person1, "Oslo", "Norway");

Experimente você mesmo

Simular o método max em um array

Você pode usar Math.max() Método encontra o número maior (na lista de números):

Exemplo

Math.max(1,2,3);  // Retornará 3

Experimente você mesmo

Como os arrays JavaScript não têm método max(), você pode aplicar Math.max() Método

Exemplo

Math.max.apply(null, [1,2,3]); // Também retornará 3

Experimente você mesmo

O primeiro parâmetro (null) não importa. Não foi usado neste exemplo.

Esses exemplos darão o mesmo resultado:

Exemplo

Math.max.apply(Math, [1,2,3]); // Também retornará 3

Experimente você mesmo

Exemplo

Math.max.apply(" ", [1,2,3]); // Também retornará 3

Experimente você mesmo

Exemplo

Math.max.apply(0, [1,2,3]); // Também retornará 3

Experimente você mesmo

Modo Estrito do JavaScript

No modo estrito do JavaScript, se apply() Se o primeiro parâmetro não for um objeto, ele se tornará o proprietário da função chamada (objeto). No modo 'não estrito', ele se torna o objeto global.