JavaScript personnalisé addClass méthode

Actuellement en JavaScript, afin d'ajouter une classe à un élément que j'utilise:

var element = document.getElementById("element");

var classes;
if (element.className.split(" ").indexOf("class") < 0) {
    classes = element.className.split(" ");
    classes.push("class");
    element.className = classes.join(" ");
}

Si je voulais faire que le code de la méthode jQuery addClass() comme ci-dessous:

addClass: function(string) {
    var classes;
    if (element.className.split(" ").indexOf("class") < 0) {
        classes = element.className.split(" ");
        classes.push("class");
        element.className = classes.join(" ");
    }
}

Dans lequel prototype de l'objet dois-je ajouter que cette méthode fonctionne comme ceci:

document.getElementById("element").onclick = function() {
    this.addClass("class");
}
Étendre les builtins des prototypes non standard fonctions peuvent rendre le code source de confusion. Je vous suggérons d'utiliser un classList polyfill ou faire addClass sa propre fonction qui prend l'élément comme un argument à la place.
this.classList.add("class")
Pourquoi l'ajout d'une fonction utile comme méthode de rendre le code source de confusion @RyanO Hara?
Une future version de DOM pourrait définir un natif addClass qui se comporte différemment que la vôtre. Il pourrait même avoir un setter, et lorsque vous essayez de définir votre méthode, quelque chose d'inattendu peut se produire. Ne jamais modifier un objet qui ne vous appartient pas.

OriginalL'auteur Angel Politis | 2016-07-09