I am creating a mini-library, sort of trying to reconstruct, at least partly, the way jQuery works for learning purposes and to understand better how object-oriented programming works.
I have recreated the jQuery methods click and addClass, but when I call them like:
$(".class1").click(function() {
    $(".class1").addClass("class2"); // Works, but it adds class2 to all elements
    this.addClass("class2"); // Doesn't work
});
I get an Uncaught Error saying this.addClass is not a function, which is normal, since I shouldn't be able to access another object's methods.
How is $(this) made in jQuery to mean the DOM element that triggered an event, so that in my case I can use it to add class2 only to the element clicked and not all elements that have the class class1?
P.S: I tried reading the jQuery file, but I feel like these waters are currently too deep for me.
Edit:
- I always appreciate all the answers and the help I get on Stack Overflow, but telling me to use - $(this)instead of- thisdoesn't solve my issue, because- $(this)doesn't exist in my code. I'm trying to learn how to create something like jQuery's- $(this)& what's the logic behind it.
- The - clickmethod is defined as follows:
    $.prototype.click = function(callback) {
       for (var i = 0; i < this.length; i++) {
          this[i].onclick = function(event) {
             callback.call(this, event);
          }
       }
    };
 
     
     
     
    