Skip to content

Instantly share code, notes, and snippets.

@studentIvan
Created May 25, 2016 10:18
Show Gist options
  • Save studentIvan/db64781443a384654dfff580b5c65dfa to your computer and use it in GitHub Desktop.
Save studentIvan/db64781443a384654dfff580b5c65dfa to your computer and use it in GitHub Desktop.
Удобная мелкая вещь для сглаживания вызова операций, например var x = new OperatingCapacitor(); x.register('scroll', function () {alert(123)}); x.register('scroll', function () {alert(456)}); x.run('scroll'); // вызовет alert 456
/**
* Сглаживание вызова операций
*
* @returns {{broker: {}, register: function, run: function}}
* @constructor
*/
var OperatingCapacitor = function () {
var object;
object = {
/**
* @private
*/
broker: {},
/**
* Зарегистрировать вызов операции
*
* @param {string} key
* @param {function} operation
*/
register: function (key, operation) {
object.broker[key] = operation;
},
/**
* Вызвать операцию
*
* @param {string} key
* @returns {*}
*/
run: function (key) {
var result = object.broker.hasOwnProperty(key)
? object.broker[key]() : null;
delete object.broker[key];
return result;
}
};
return object;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment