Может кто-нибудь объяснить мне, как реализована функция _.before, так как я действительно не понимаю, почему внутренняя переменная times
отслеживает каждый вызов функции. Разве это не должно быть в локальном масштабе и каждый раз перезагружаться, как обычные функции?underscore.js .be function function
Код для _.before функции:
// Returns a function that will only be executed up to (but not including) the Nth call.
_.before = function(times, func) {
var memo;
return function() {
if (--times > 0) {
memo = func.apply(this, arguments);
}
if (times <= 1) func = null;
return memo;
};
};
Спасибо.
Вам нужно это http://stackoverflow.com/questions/111102/how-do-javascript-closures-work – Maxx