Reference to an object from a callback function in jQuery

jquery, jquery-callback

Solution

In Javascript an anonymous function is able to reference all variables that existed at the scope of the function's creation. Since `this` gets reassigned in the callback function, you can create a local variable to store it before you enter the callback.

function MyClass(){
  this.myClassAttribute = "A class attribute";
  var myClass = this;

  $("span").click(function(){
    myClass.myClassAttribute = "hello";
  });

}

Problem

I have following situation. In a constructor of a pseudo class I attach a click event to an element. When the event is triggered I would like to refer from the callback function to the object where the event was set. Code of the pseudo class constructor ``` function MyClass(){ this.myClassAttribute = "A class attribute"; // here `this` refers to the object $("span").click(function(){ // here `this` refer to a matched element, i.e. "span" // How to get the value of `myClassAttribute`? }); } ``` How to refer to the object without an global variable?

Original source