Жебе функциясы
Жебе функциялары, негиздери
Функцияларды түзүү үчүн дагы бир жөнөкөй жана кыска синтаксис бар, ал көбүнчө Функция туюнтмасынан жакшыраак.
Ал "жебе функциялары" же "жебе функциялары" (жебе функциялары) деп аталат, анткени төмөнкүдөй:
let func = (arg1, arg2, ...argN) => туюнтма;
Бул arg1..argN аргументтерин алган func функциясын жаратат, андан кийин алардын жардамы менен оң жактагы туюнтманы баалайт жана натыйжаны кайтарат.
Башка сөз менен айтканда, бул кыскартылган версия болуп саналат:
let func = function(arg1, arg2, ...argN) {
кайтаруу туюнтмасы;
};
Келгиле, конкреттүү мисалды карап көрөлү:
суммасы = (a, b) => a + b;
/* Бул жебе функциясы кыскараак форма:
сумма = функция(a, b) {
a + b кайтаруу;
};
*/
alert( sum(1, 2) ); // 3
Көрүнүп тургандай, (a, b) => a + b a жана b деп аталган эки аргументти алган функцияны аныктайт. Ал эми аткарылганда a+b туюнтмасын баалап, натыйжаны кайтарат.
Эгерде бизде бир гана аргумент бар болсо, анда параметрлердин айланасындагы кашааларды калтырып коюуга болот, бул белгини дагы кыскараак кылат:
let double = n => n * 2;
// болжол менен окшош: let double = function(n) { return n * 2}
alert(double(3)); // 6
Эгерде аргументтер жок болсо, кашаалар бош болот, бирок алар болушу керек:
let sayHi = () => alert("Салам!");
sayHi();
Жебе функцияларын Функция туюнтмалары сыяктуу колдонсо болот.Мисалы, функцияны динамикалык түзүү үчүн:
let age = prompt("Сен канча жаштасың?", 18);
кош келиңиз = (жаш < 18) ?
() => alert('Салам!'):
() => alert("Салам!");
Кош келдиңиз();
Башында жебе функциялары адаттан тыш, ал тургай окуу кыйындай сезилиши мүмкүн, бирок көз бул конструкцияларга көнүп калганда, бул тез эле өтүп кетет.
Алар көп сөздөрдү жазууга жалкоо болгондо, жөнөкөй бир саптык иш-аракеттер үчүн абдан ыңгайлуу.
Көп сызык жебе функциялары
Буга чейин биз көргөн жебе функциялары абдан жөнөкөй. Алар => сол жагындагы аргументтерди алып, оң жагындагы туюнтманы баалап, кайтарышты.
Кээде бизге бир нече туюнтмалар жана билдирүүлөр менен татаалыраак функция керек. Бул да мүмкүн, сиз аларды тармал кашаага камашыңыз керек. Ошол эле учурда, маанилүү айырма, мындай кашааларда сиз маанини кайтаруу үчүн (кадимки функциялардагыдай) return колдонушуңуз керек.
Бул сыяктуу:
let sum = (a, b) => { // көп саптуу функциянын тулкусун ачуучу тармал кашаа
натыйжа болсун = a + b;
натыйжаны кайтаруу; // эгерде биз тармал кашааларды колдонсок, анда "кайтарууну" ачык көрсөтүүбүз керек.
};
alert( sum(1, 2) ); // 3
Дагы дагы
Бул жерде биз жебе функцияларынын негизги максатын кыскача кылып киргиздик. Бирок бул баары эмес!
Жебе функцияларынын башка кызыктуу мүмкүнчүлүктөрү бар.
Аларды дагы майда-чүйдөсүнө чейин изилдөө үчүн, биз адегенде JavaScriptтин башка аспектилери менен тааныш болушубуз керек, ошондуктан жебе функцияларына кийинчерээк Итерациялоочу жебе функциялары бөлүмүндө кайрылабыз.
Ошол эле учурда, биз аларды жөнөкөй бир саптык аракеттер жана кайра чалуулар үчүн колдоно алабыз.Бардыгы
Жебе функциялары жөнөкөй аракеттерге, өзгөчө бир саптык аракеттерге абдан ыңгайлуу.
Алар эки түрү бар:
Тармал кашаасыз: (...args) => туюнтма туюнтумдун оң жагы: функция аны баалайт жана натыйжаны кайтарат. Бир гана аргумент бар болсо, кашааларды алып салууга болот: n => n * 2.
Тармал кашаалар менен: (...args) => { body } - кашаалар функциянын ичинде бир нече операторду жазууга мүмкүндүк берет, бирок маанини кайтаруу үчүн биз ачык түрдө return чакырышыбыз керек.
Tasks
Жебе функциясын колдонуп кайра жазыңыз
Function Expression кодун жебе функциясы менен алмаштырыңыз:
функция суроо (суроо, ооба, жок) {
эгерде (тастыктоо(суроону)) ооба()
башка жок();
}
суроо(
"Сиз макулсузбу?",
function() { alert("Сиз макул болдуңуз."); },
function() { alert("Сиз аткарууну жокко чыгардыңыз."); }
);