How To Get The Instance Name Of An Object
Solution 1:
Loose the parenthesis in this.Poll()
. You call this function right away, not after a time interval. If you loose the brackets, it will pass a function, not a result of it, to setInterval
and you won't have any issues.
setTimeout(this.Poll, this.Interval);
Otherwise you call the function right away and nothing holds this
pointer anymore, and IE just deletes it.
In fixed variant, this.Poll
will hold pointer to this
and it won't be deleted.
Solution 2:
I just wanted to say, this self trick has saved me a ton of hair pulling.
I didn't think to create a reference like this. It means dynamically-created elements with on click events can call the correct instance of my class.
Solution 3:
You could also use:
i.e.
var name = findInstanceOf(cPoll);
functionfindInstanceOf(obj) {
for (var v inwindow) {
try {
if (window[v] instanceof obj)
return v;
} catch(e) { }
};
returnfalse;
}
From http://www.liam-galvin.co.uk/2010/11/24/javascript-find-instance-name-of-an-object/#read
Solution 4:
var self = this;
this.tmo = setTimeout(function(){
self.Poll();
}, this.iInterval);
Solution 5:
I provided an answer for a similar question today in which I created a polling class from scratch. You may want to adopt it for yourself. In the sake of not duplicating, here's a link a link to said question:
Poll the Server with Ajax and Dojo *
* Despite the title, my solution offers both "vanilla" and Dojo styles.
Post a Comment for "How To Get The Instance Name Of An Object"