Ignorant le fait que cela est mis en œuvre par nombreux cadres ..Qu'est-ce qu'une meilleure approche de prototype pour plusieurs types
Quelle est la meilleure façon de prototype pour plusieurs types d'objets.
Par exemple, devrais-je écrire:
Element.prototype.bind = function(eventType, fn) {
this.addEventListener(eventType, fn, false);
};
NodeList.prototype.bind = function(eventType, fn) {
for (var i = 0, l = this.length; i < l; i++) {
this[i].addEventListener(eventType, fn, false);
}
};
ou
Object.prototype.bind = function(eventType, fn) {
if (this instanceof Element) {
this.addEventListener(eventType, fn, false);
} else if (this instanceof NodeList) {
for (var i = 0, l = this.length; i < l; i++) {
this[i].addEventListener(eventType, fn, false);
}
}
}
http://jsperf.com/prototype-methods Ok, donc j'ai trouvé que la première méthode est une meilleure performance, et je suppose qu'il offre aussi moins de chances de conflits ? – rlemon
Ouais c'est aussi plus propre et plus facile à lire à mon humble avis ... si vous voulez la même fonction sur plusieurs types alors le code est beaucoup plus propre. Imagine 'cette instance d'Element || cette instance de OtherType || ... ': O –
Le meilleur endroit pour cela est probablement SO. Pourriez-vous ajouter un peu de contexte? Quels problèmes avez-vous rencontrés qui vous ont amené à demander cela? –