diff --git a/src/ol/observable.js b/src/ol/observable.js index e7a304a28b..0f48f60ea0 100644 --- a/src/ol/observable.js +++ b/src/ol/observable.js @@ -34,6 +34,16 @@ ol.Observable = function() { goog.inherits(ol.Observable, goog.events.EventTarget); +/** + * Removes an event listener using the key returned by `on()` or `once()`. + * @param {goog.events.Key} key The key returned by `on()` or `once()`. + * @api stable + */ +ol.Observable.unByKey = function(key) { + goog.events.unlistenByKey(key); +}; + + /** * Increases the revision counter and disptches a 'change' event. * @fires change @@ -95,9 +105,10 @@ ol.Observable.prototype.un = function(type, listener, opt_this) { /** * Removes an event listener using the key returned by `on()` or `once()`. - * @param {goog.events.Key} key Key. + * Note that using the {@link ol.Observable.unByKey} static function is to + * be preferred. + * @param {goog.events.Key} key The key returned by `on()` or `once()`. + * @function * @api stable */ -ol.Observable.prototype.unByKey = function(key) { - goog.events.unlistenByKey(key); -}; +ol.Observable.prototype.unByKey = ol.Observable.unByKey; diff --git a/test/spec/ol/observable.test.js b/test/spec/ol/observable.test.js index 7d7e93cbc9..890e83c842 100644 --- a/test/spec/ol/observable.test.js +++ b/test/spec/ol/observable.test.js @@ -144,7 +144,7 @@ describe('ol.Observable', function() { }); - describe('#unByKey()', function() { + describe('ol.Observable.unByKey()', function() { var observable, listener; beforeEach(function() { observable = new ol.Observable(); @@ -157,7 +157,7 @@ describe('ol.Observable', function() { observable.dispatchEvent('foo'); expect(listener.calledOnce).to.be(true); - observable.unByKey(key); + ol.Observable.unByKey(key); observable.dispatchEvent('foo'); expect(listener.callCount).to.be(1); });