$el.text() // геттер
$el.attr('name') // геттер
$el.text('foo') // сеттер
$el.attr('name', 'foo') // сеттер
И все бы ничего, но допустим мы хотим к аттру name что-нить дописать или не дай б-же сделать замену регексом.
$el.attr('name', $el.attr('name').replace(...)) // ГОВНО
Оказывается, в сеттер можно передавать коллбэк! Во-первых это значит что можно разумно менять значения группам элементов, а во-вторых, при помощи лямбд пример выше записать так:
$el.attr('name', (idx, attr) => attr.replace(...) ) // НЯШНОСТЬ
Итак, как взять и пронумеровать все абзацы? Да вот как:
$('p').text((idx, text) => idx + ". " + text) // ОХУЕННОСТЬ
Лямбды? В JS? Ну, они есть в новом ECMAScript и в TypeScript.