Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.
Закрыт 1 год назад.
var d = {};
function bind(f, arg1) {
return function() {
var start = performance.now();
var func = f.apply(this, arguments)
if (!d[arg1]) {
d[arg1] = 0;
}
d[arg1] += performance.now() - start;
return func
}
}
var fibonacci = function f(n) {
return (n > 2) ? f(n - 1) + f(n - 2) : 1;
}
var fibonacci = bind(fibonacci, "fibo");
console.log(fibonacci(10)); // 55
console.log(d.fibo + ' мс ');
var d = {};
function bind(f, arg1) {
return function() {
var start = performance.now();
var func = f.apply(this, arguments)
if (!d[arg1]) {
d[arg1] = 0;
}
d[arg1] += performance.now() - start;
return func
}
}
var fibonacci = function f(n) {
return (n > 2) ? f(n - 1) + f(n - 2) : 1;
}
var q = bind(fibonacci, "fibo");
console.log(q(10)); // 55
console.log(d.fibo + ' мс ');
Потому что в первом примере:
var fibonacci = bind(fibonacci, "fibo");
а во втором:
var q = bind(fibonacci, "fibo");
Измените во втором примере
console.log(fibonacci(10)); // 55
на
console.log(q(10)); // 55
получается функцию
var fibonacci = function f(n) { return (n > 2) ? f(n - 1) + f(n - 2) : 1; }
мы переписали а как тогда мы получаем результат ?
Результат мы получаем, потому что замыкание, созданное внутри bind
, содержит ссылку на старую функцию fibonacci
, которую мы туда передали.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Делаю небольшое SPA с несколькими страницами, навигацию выполняю средствами react-routerПри клике на <Link /> страницы Route рендерит нужный компонент...
У меня есть массив объектовИх достаточно большое количество
У меня есть одна проблема с которой я очень часто сталкиваюсь при написании js кодаОбъясню на пример