Size: a a a

JavaScript Noobs — сообщество новичков

2020 July 15

А

Алексей in JavaScript Noobs — сообщество новичков
Алексей
function sum(a) {

 let currentSum = a;

 function f(b) {
   currentSum += b;
   return f;
 }

 f.toString = function() {
   return currentSum;
 };

 return f;
}

alert( sum(1)(2) ); // 3
alert( sum(5)(-1)(2) ); // 6
alert( sum(6)(-1)(-2)(-3) ); // 0
alert( sum(0)(1)(2)(3)(4)(5) ); // 15
Извините, проверьте меня. Вроде разобрался.
например sum(a)(b)(c)(d)
Сначала идет currentSum = a, потом возвращаем функцию и следующая скобка (b) в sum становится автоматически  аргументом f и так далее (c) и (d). Когда вызываем alert(sum(a)(b)(c)(d)) , то после всех операций (return f, currentSum a+b+c+d) переводит значения объекта f в строку и выводит , а если писать console.log, то просто вернет в json формате sum как объект, так как console.log не распознает метод toString (особенность alert) ?
источник

L

Lev Tonov in JavaScript Noobs — сообщество новичков
Алексей
Извините, проверьте меня. Вроде разобрался.
например sum(a)(b)(c)(d)
Сначала идет currentSum = a, потом возвращаем функцию и следующая скобка (b) в sum становится автоматически  аргументом f и так далее (c) и (d). Когда вызываем alert(sum(a)(b)(c)(d)) , то после всех операций (return f, currentSum a+b+c+d) переводит значения объекта f в строку и выводит , а если писать console.log, то просто вернет в json формате sum как объект, так как console.log не распознает метод toString (особенность alert) ?
console не распознает toString? Это как?
источник

А

Алексей in JavaScript Noobs — сообщество новичков
ну вот так))). сейчас результат покажу
источник

А

Алексей in JavaScript Noobs — сообщество новичков
[Function: f] { toString: [Function (anonymous)] }
источник

А

Алексей in JavaScript Noobs — сообщество новичков
это если внутри объекта объявить, то alert возвращает строку и печатает ее
источник

А

Алексей in JavaScript Noobs — сообщество новичков
говорю на примере. утверждать не могу, недостаточно знаний . поэтому я и спросил «Правильно ли?»
источник

А

Алексей in JavaScript Noobs — сообщество новичков
[Symbol.toPrimitive](hint)
источник

А

Алексей in JavaScript Noobs — сообщество новичков
и этот в объекте не распознает
источник

M

Mike in JavaScript Noobs — сообщество новичков
Глеб Щукин
ну такое. проще отталкиваться от того, что последний элемент в массиве -  проценты, остальные элементы - страна
да, там все такие. других нет
источник

А

Алексей in JavaScript Noobs — сообщество новичков
ну эт ладно. вот return f - возвращаем функцию. а ее аргументом будет следующая скобка?
источник

А

Алексей in JavaScript Noobs — сообщество новичков
я именно здесь тупил.
источник

D

Danila in JavaScript Noobs — сообщество новичков
Алексей
ну эт ладно. вот return f - возвращаем функцию. а ее аргументом будет следующая скобка?
Там всё просто. Мы возвращем функцию, которая возвращает сама себя. У этой же функции есть .toString, который возвращает текущее значение
источник

D

Danila in JavaScript Noobs — сообщество новичков
В функцию замкнут счётчик
источник

D

Danila in JavaScript Noobs — сообщество новичков
Да, это и называется в функцию
источник

K

Kirill in JavaScript Noobs — сообщество новичков
ребят, есть массив в котором присутствуют элементы двух разных типов данных(boolean, number). В зависимости от инпута, в массиве будут все элементы Number  и один Boolean и наоборот, все Boolean и один Number. Короче мне нужно получить индекс того одного элемента с уникальным типом данных, то есть элемент, который один в массиве
источник

А

Алексей in JavaScript Noobs — сообщество новичков
Danila
Там всё просто. Мы возвращем функцию, которая возвращает сама себя. У этой же функции есть .toString, который возвращает текущее значение
toString срабатывает 1 раз?
источник

А

Алексей in JavaScript Noobs — сообщество новичков
и запоминает значение лексич окружения
источник

D

Danila in JavaScript Noobs — сообщество новичков
Алексей
toString срабатывает 1 раз?
Он срабатывает тогда, когда ты пытаешься привести объект (функцию) к строке
источник

D

Danila in JavaScript Noobs — сообщество новичков
Алексей
toString срабатывает 1 раз?
Я бы рекомендовал про toString в этой ситуации пока вообще не думать, а разобраться в том, что там происходит
источник

D

Danila in JavaScript Noobs — сообщество новичков
В плане f return f
источник