что значат подобные записи вызова функций: foo()(); или foo(1)(3)(5); ?
встретились вот, поиск и обращение к сокурсникам дало результат - это самовызывающиеся функции. но насколько я знаю самовызывающиеся функции это нечто иное? подскажите, как эта запись вообще называется что бы найти по ней информацию! спасибо
|
ogurchik,
http://forwebdev.ru/javascript/chaining/ |
спасибо, про цепочки методов знаю, но по-моему это немного не то, нет? тут о чистом js речь идет, о вот таком необычном вызове функции.
|
рони,
нет, это не цепочки методов, т.к. тут, собственно, этих методов и нет. ogurchik, этот шаблон, если не путаю, называется каррирование.
function foo(a) {
return function(b) {
return function(c) {
return a + b + c;
}
}
}
var a = foo(1)(1)(1);
alert(a);
|
Safort,
спасибо! очень помогли! |
На ES6 выглядит лучше
let a = (a) => {
return b => {
return c => {
return a + b + c;
}
}
}
let q = a(1)(1)(1);
|
Цитата:
let foo = (a) => (b) => (c) => a + b + c; console.log(foo(1)(2)(3)); а вообще http://learn.javascript.ru/task/summ...chestva-skobok |
nerv_,
блин, чот ступил, действительно можно гораздо лаконичней) |
Цитата:
let foo = a => b => c => a + b + c; :) |
| Часовой пояс GMT +3, время: 01:43. |