Currently in JavaScript, in order to add a class to an element I use:
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(" ");
}
If I wanted to make that code a method like jQuery's addClass() like below:
addClass: function(string) {
var classes;
if (element.className.split(" ").indexOf("class") < 0) {
classes = element.className.split(" ");
classes.push("class");
element.className = classes.join(" ");
}
}
In which object's prototype should I add this method to work like this:
document.getElementById("element").onclick = function() {
this.addClass("class");
}
classListpolyfill or makeaddClassits own function that takes the element as an argument instead.this.classList.add("class")addClasswhich behaves differently than yours. It could even have a setter, and when you attempt to define your method, something unexpected may happen. Never alter an object you don't own.