1. O que são argumentos
Os argumentos são um objeto embutido no JavaScript. Todas as principais bibliotecas de função JS utilizam objetos de argumentos. Portanto, o objeto AGRENTEMENT é necessário para os programadores JavaScript se familiarizarem.
Todas as funções têm seu próprio objeto de argumentos, que inclui os parâmetros a serem chamados pela função. Não é uma matriz, se o tipo de argumentos forem usados, o retorno será 'objeto'. Embora possamos chamar argumentos chamando dados. Por exemplo, comprimento e método de índice. Mas os objetos de push e pop das matrizes não são aplicáveis.
2. Crie uma função flexível
Parece que o objeto de argumento é muito limitado a usar, mas na verdade é um objeto muito útil. Você pode usar o objeto de argumento para permitir a função chamar um número indefinido de parâmetros. Há uma função formatada na biblioteca Base2 de Dean Edwards que demonstra essa flexibilidade.
Copie o código da seguinte forma: Format Format (String) {
var args = argumentos;
var padrão = novo regexp ("%([1-" + argumentos.length + "])", "g");
Return string (string) .replace (padrão, função (correspondência, index) {
retornar args [índice];
});
};
Fornecemos uma string de modelo na qual você pode adicionar um espaço reservado ao valor de retorno usando "%1" a "%9". Em seguida, forneça nove outros parâmetros para inserir.
A cópia do código é a seguinte: formato ("e o %1 querem saber de quem %2 you %3 ″," papers "," camisa "," desgaste ");
O código acima retornará: e os papéis querem saber de quem você usa ".
Há algo em que precisamos prestar atenção. O JavaScript nos permite passar qualquer número de parâmetros em uma função, não importa como definimos essa função. Os objetos de argumentos são permitidos para eles.
3. Converter argumentos objeto em uma matriz real
Embora o objeto de argumentos não seja uma matriz JavaScript real, podemos facilmente convertê -lo em dados padrão e executar operações de matriz.
A cópia do código é a seguinte: var args = array.prototype.slice.call (argumentos);
Agora, essa variável args contém um objeto JavaScript padrão que contém todos os parâmetros da função.
4. Crie funções através de objetos predefinidos de argumentos
O objeto de argumentos nos permite executar todos os tipos de métodos JavaScript. Aqui está uma definição de função makefunc. Esta função nos permite fornecer uma referência de função e todos os parâmetros desta função. Ele retornará uma função anônima para chamar a função que você especificou e também fornecerá os parâmetros anexados à chamada de função anônima.
Copie o código da seguinte forma: função makefunc () {
var args = array.prototype.slice.call (argumentos);
var func = args.shift ();
Return function () {
retornar func.apply (null, args.concat (array.prototype.slice.call (argumentos)));
};
}
O primeiro objeto de argumento fornece a Makefunc uma referência à função que você deseja ligar. Ele o removeu da matriz de argumentos. Em seguida, Makefunc retorna uma função anônima para executar o método especificado.
O argumento do primeiro aplicativo aponta para o escopo da chamada de função, apontada principalmente pelas principais partes da função. Vamos manter isso como nulo primeiro. O segundo argumento é uma matriz que será convertida em um objeto de argumento para esta função. Makefunc concatena os valores originais da matriz no objeto Argumentos e na matriz das funções chamadas.
Você precisa produzir um modelo que seja sempre a mesma posição para que nem sempre chame a função de formato toda vez que se referir ao modelo. Você pode usar a função geral do Makefunc para retornar funções que podem chamar o formato e complementar automaticamente o modelo.
A cópia do código é a seguinte: var majortom = makefunc (formato, "Este é o principal controle do solo para o solo. Eu sou %1.");
Você pode chamar a função Majortom como esta:
A cópia do código é a seguinte: Majortom ("Passando pela porta");
Majortom ("flutuando de uma maneira mais peculiar");
Toda vez que você chama o Majortom, ele chama a função de formato e o primeiro argumento ao mesmo tempo, e o modelo já escrito. Então vai retornar
Copie o código da seguinte forma: "Este é o principal controle do controle do solo. Estou passando pela porta".
"Este é o principal controle do solo para o solo.
5. Crie uma função que se refere a si mesma
Você pode pensar que isso é legal, mas há mais surpresas para argumentos. Ele tem outros recursos úteis: o método Callee. Argumentos.callee inclui uma referência a uma função para criar um objeto de argumento. Então, como usá -lo?
O método argumentos.Callee permite que uma função anônima aponte para si mesma convenientemente.
Repetir é uma função que carrega uma referência de função e dois números. O primeiro número é quantas vezes a função é chamada e o segundo número é o intervalo entre cada chamada, em milissegundos.
A cópia do código é a seguinte: Função Repita (FN, Times, Atraso) {
Return function () {
if (times> 0) {
fn.Apply (nulo, argumentos);
var args = array.prototype.slice.call (argumentos);
var self = argumentos.callee;
setTimeout (function () {self.apply (null, args)}, atraso);
}
};
}
A função de repetição usa os argumentos. Dessa maneira, a função anônima pode ser chamada novamente.
Eu tenho uma função super breve que hospeda uma string e executa um método de alerta.
Copie o código da seguinte forma: função comunica (s) {
alerta (s);
}
No entanto, quero criar uma versão especial através da qual possa repetir essa ação três vezes, cada intervalo de tempo de 2 segundos. Então, nós podemos
A cópia do código é a seguinte: var algowrong = repeat (Comms, 3, 2000);
Algowrong ("Você pode me ouvir, major Tom?");
O resultado de chamar a função de algo que a destruição é repetir essa ação três vezes, com cada intervalo de alerta de 2 segundos.
Embora os argumentos não sejam usados com frequência e sejam um pouco estranhos, eles estão cheios de surpresas e valem a pena aprender.