Аргументы в стрелочных функциях ES6: официальное разъяснение
В стрелочных функциях ES6 поведение ключевого слова аргументов было предметом споров. Некоторые браузеры и платформы (такие как Chrome, Firefox и Node) отклоняются от первоначальных рекомендаций TC39, что вызывает вопросы о правильной интерпретации спецификации.
Согласно официальной спецификации ES6, стрелочные функции не имеют своих функций. собственные аргументы, обязательные в пределах своей области действия. При вызове стрелочные функции не создают объект аргументов в рамках процесса создания экземпляра объявления.
Это противоречит поведению, наблюдаемому в таких браузерах, как Chrome, Firefox и Node, которые создают объект аргументов в стрелочных функциях. В результате эти браузеры неправильно предоставляют доступ к аргументам, передаваемым включающую функцию.
Babel, с другой стороны, следует официальной спецификации, выдавая «ReferenceError» при доступе к аргументам внутри стрелочной функции. Это соответствует предполагаемому поведению стрелочных функций как функций, которые принимают свою родительскую область для доступа к аргументам.
Поэтому правильное понимание заключается в том, что стрелочные функции не имеют специальной привязки аргументов. Разработчикам следует использовать объект аргументов, предоставляемый включающей функцией, для доступа к переданным аргументам при работе с функциями стрелок.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3