When we call un like this:
obs.un({
event1: handler1,
event2: handler2
}, ctx);
it does not works because the code does not make corrections in hash branch:
} else {
var _this = this;
$.each(e, function(e, fn) {
_this.un(e, fn, ctx);
});
}
In this place the ctx var is always undefined because the right ctx is assigned to function's param fn.
When we call
unlike this:it does not works because the code does not make corrections in hash branch:
In this place the
ctxvar is alwaysundefinedbecause the rightctxis assigned to function's paramfn.