Si je veux ajouter une méthode isEmpty à tous les tableaux JavaScript, j'utiliser le code suivantJavaScript cycle de vie de prototype augmentée
Array.prototype.isEmpty = function() {
return this.length == 0;
}
On suppose ce code est dans un fichier foo.js. Si je veux que isEmpty soit disponible sur toutes les pages d'un site web, devrais-je inclure foo.js dans tous les fichiers HTML? En d'autres termes, les prototypes sont-ils "réinitialisés" chaque fois que l'utilisateur accède à une page différente?
Merci, Don
Pouvez-vous être un peu plus précis sur la façon dont je peux me faire des ennuis? –
@Don, C'est seulement un problème pour 'for (elem in array) ...', le problème auquel faisait référence @Annan est que car .. dans l'énumération d'un objet inclura toutes les propriétés que vous ajoutez à tous les objets sur le prototype chaîne. Cela dit, vous ne devriez vraiment pas utiliser l'énumération for-in sur un tableau, c'est vraiment inefficace. – olliej
Je n'étais pas au courant des surcharges de performance avec l'utilisation de (in) boucles, c'est bon à savoir. Je les utilise moi-même pour les tableaux car cela semble plus logique et plus facile à lire. – Annan