Isso é uma coisa interessante, que também pode ilustrar o poder dos objetos JavaScript. O que precisamos fazer é produzir um hello, mundo mencionado no artigo anterior, e a entrada é a impressão ('hello') ('mundo'), e esta é a chamada função de ordem superior.
Funções avançadas
A ordem avançada parece um termo esotérico para técnicas avançadas de programação, e pensei assim quando o vi pela primeira vez.
Funções de ordem superior de JavaScript
No entanto, funções de ordem superior são apenas funções que recebem funções como argumentos ou valores de retorno. Olá e mundo são o acima como um exemplo simples.
A cópia do código é a seguinte:
var moqi = função (p1) {
this.add = function (p2) {
retornar P1 + '' + P2;
};
retornar add;
};
Podemos usar esta função assim
A cópia do código é a seguinte:
console.log (moqi ('hello') ('mundo'));
Talvez esse processo seja um pouco confuso, vamos ver se é mais detalhado.
A cópia do código é a seguinte:
> typeof moqi ('hello')
<- "função"
> Moqi ('hello')
<- function (p2) {
retornar P1 + '' + P2;
}
Ou seja, de fato, moqi ('hello') é uma função, moqi ('hello')
A cópia do código é a seguinte:
> var m = moqi ('hello')
> m ('mundo')
> "Olá, mundo"
A julgar pela situação acima, as funções de ordem superior podem tornar o código mais conciso e eficiente. Naturalmente, também podemos criar uma função para facilitar:
A cópia do código é a seguinte:
> Moqi ('hello') ('mundo') ('phodal')
> "Olá, mundo phodal"
Então existe essa função
A cópia do código é a seguinte:
var moqi = função (p1) {
Função de retorno (P2) {
Função de retorno (p3) {
retornar P1 + ',' + P2 + '' + P3;
}
};
};
Restaurar funções de ordem superior
Os sinais que precisam introduzir funções de ordem superior abstração são códigos duplicados ou similares. Em seguida, restauramos a função anterior passo a passo:
A cópia do código é a seguinte:
var moqi = função (p1) {
this.add = function (p2) {
Função de retorno (p3) {
retornar P1 + ',' + P2 + '' + P3;
}
};
devolver este.Add;
};
Em seguida, crie uma nova função
A cópia do código é a seguinte:
var moqi = função (p1) {
this.add = function (p2) {
this.add1 = função (p3) {
retornar P1 + ',' + P2 + '' + P3;
};
retornar this.add1;
};
devolver este.Add;
};
Usando o método de chamada em JavaScript, haverá:
A cópia do código é a seguinte:
var moqi = função (p1) {
var self = this;
função fd (p2) {
this.add1 = função (p3) {
retornar P1 + ',' + P2 + '' + P3;
};
}
self.add = função (p2) {
fd.call (this, p2);
retornar this.add1;
};
retornar self.add;
};
Exemplos de função avançada
O exemplo acima é apenas por diversão, e o exemplo a seguir é um aplicativo real.
A cópia do código é a seguinte:
add = function (a, b) {
retornar a + b;
};
função matemática (func, array) {
retornar func (Array [0], Array [1]);
}
console.log (matemática (add, [1,2]));
> matemática (add, [1,2])
<3
O add passado no exemplo acima é um parâmetro e o retorno é apenas uma função. Por exemplo, há uma função no jQuery
A cópia do código é a seguinte:
// converter tracejado em camelcase; usado pelo CSS e módulos de dados
// A Microsoft esqueceu de exercer seu prefixo de fornecedores (#9572)
CamelCase: function (string) {
return string.Replace (rmsprefix, "ms-") .replace (rdashalpha, fcamelcase);
},
Este também é o caso do uso de funções de ordem superior para dominar o JS. .