Deux méthodes sont prises en charge dans JS Array, Shift () et POP (), qui se réfèrent à la suppression d'une valeur de l'avant et du dernier côté d'une données, et de renvoyer la valeur supprimée. Vous comprendrez en regardant un exemple:
La copie de code est la suivante:
var arr = ['s', 'o', 'f', 'i', 's', 's', 'h'];
arr.shift (); // retourne 's'
arr; // actuellement ['o', 'f', 'i', 's', 'h']
arr.pop () // retour 'h'
arr // actuellement ['o', 'f', 'i', 's']
Il est très courant dans de nombreux cadres JS qu'une méthode vous fournit de transmettre plusieurs paramètres, et certains de ces paramètres peuvent être ignorés. Ces points négligeables peuvent être le premier ou le dernier. La manière traditionnelle d'écriture est de déterminer si les paramètres existent ou le nombre de paramètres pour déterminer la valeur finale.
Ici, nous pouvons utiliser l'objet d'arguments de la fonction, ainsi que le déplacement et la mise en œuvre du tableau pour réaliser des applications flexibles.
1. Utilisez le quart
Comment implémenter une méthode .bind (), laissez l'API FN être la suivante:
La copie de code est la suivante:
// La portée de FN est limitée à l'objet
// à l'exception de l'objet, tous les paramètres des méthodes de liaison seront transmis à fn
fn.bind (objet, param1, param2, [, paramn]);
Regardez d'abord un exemple. Bien sûr, cet exemple peut être plus important pour l'application de l'appel et s'appliquer. Cependant, ce dont nous voulons parler, c'est l'application de Shift:
La copie de code est la suivante:
// [`.bind`] (http://www.prototypejs.org/api/function/bind) Méthode de prototype.js
Function.prototype.bind = function () {
var fn = ceci,
args = array.prototype.slice.call (arguments),
object = args.shift ();
return function () {
return fn.apply (objet,
args.concat (array.prototype.slice.call (arguments)));
};
};
Nous pouvons utiliser Shift vers l'objet Arguments (objet de type tableau, qui doit être converti en un vrai tableau) pour le retirer. Par exemple, cette méthode les utilise principalement pour séparer l'objet en tant que portée, puis passer intelligemment le tableau de paramètres restant à FN, c'est-à-dire, appelez la fonction que nous voulons limiter à la portée de l'objet.
2. Utilisez POP
Récemment, nous essayons Seajs, prenons l'une de ses API comme exemple:
La copie de code est la suivante:
définir (id, dépendances, rappel)
Cela définit l'API d'un module, l'ID et les dépendances peuvent être omises. Ici, comment implémenter ce support? Si vous utilisez si pour juger, vous avez vraiment besoin de (arguments === 1) {...} elseif ... beaucoup d'entre eux. Bien sûr, cela a parfois des avantages (?, Pensez-y). Ici, nous pouvons utiliser POP pour faciliter la mise en œuvre d'un tel soutien:
La copie de code est la suivante:
var define = function () {
// Sortez ce rappel
var args = [] .slice.call (arguments)
fn = args.pop ();
// faire d'autres choses magiques
fn.apply (null, args)
// ...
},
callback = function () {
var args = arguments, i = 0, len = args.length;
if (len === 0) console.log («un seul rappel»);
pour (; i <len; i ++) {
console.log (args [i]);
}
}
// consulte les résultats d'exécution de ces trois
définir (rappel);
définir («il y a deux paramètres», rappel);
Définir («Il y a trois paramètres», «Hello World», rappel);
Il y a deux jours, j'avais l'habitude de citer quelque chose lorsque j'utilisais quelques astuces dans JS. Bien que je me demande toujours de ne pas être trop immergé dans le code, le code, pas seulement JS, nous donne toujours trop de plaisir. Comment ne pas l'aimer. Ha ha.