Created
May 25, 2016 10:18
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Сглаживание вызова операций | |
* | |
* @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