Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

Class A (mine) implements event handlers for class B (3rd party). Within these event handlers, I would like to access class A's properties.

Using this in class A's handlers does not work because it references class B's scope.

Global variables seem like the only option. Am I missing a better alternative?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
415 views
Welcome To Ask or Share your Answers For Others

1 Answer

Create a self or that variable, which holds a reference to this. Something like this:

var ClassA = function () {
    var self = this;

    this.MyProperty1 = 3;
    self.MyProperty2 = "hello world";

    var ClassB_EventHandler = function () {
        self.MyProperty1;
        self.MyProperty2;
    }

}

You can use this and self interchangeably in ClassA's scope. In the ClassB event handler, you'll be required to use self to reference ClassA properties.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...