Зачем нужны ссылки для ведущих параметров в выражениях функций ES6?
Потому что в противном случае это была бы синтаксическая ошибка. В не только ES6, но и в любой версии языка вы не можете исключать формальные параметры, потому что спецификация не обеспечивает его.
Если вы действительно хотите сделать это (но почему?), Вы можете написать его как
function ditchFirstArgument(...[, second]) {}
или, по крайней мере, вы будете иметь возможность в какой-то будущей версии ES; см. https://github.com/tc39/ecma262/commit/d322357e6be95bc4bd3e03f5944a736aac55fa50. Это уже похоже на поддержку в Chrome. Между тем, лучшее, что вы можете сделать, это
function ditchFirstArgument(...args) {
const [, second] = args;
Но почему спецификации не позволяют элизия параметров?
Вам нужно будет спросить людей, которые его написали, но они, возможно, даже не подумали об этом, или если они это сделали, отвергли его, потому что он подвержен ошибкам, вряд ли когда-либо необходим, и его можно легко обойти используя фиктивные формальные параметры, такие как _
.
какой ответ вы ищете? «Потому что язык этого не позволяет»? Если вы просите причины для * проектных решений *, то это не очень хорошее место (потому что большинство людей здесь не работают над ECMAScript) –
это привело бы к чрезвычайно специализированным функциям с чрезвычайно плохим повторным использованием.и еще хуже: назначение этих функций было бы кошмаром: D – rand
Привет, Феликс, я ценю, что большинство людей не разрабатывали Javascript, но все же думал, что Stack Overflow будет хорошим местом, чтобы получить техническое объяснение того, почему язык не будет позвольте мне сделать это. Я полностью ожидаю, что многие пользователи SO не получат ответа - это прекрасно :) – Barney