Что это "функция a/<()" в консоли разработчика?
Во время игры с консолью разработчика в Firefox я попытался сделать это:
var a = b => c => c;
а затем это:
a(1)
Я ожидал, что результат будет function()
(соответствует c => c
), но вместо этого он был отображен:
function a/<()
В чем смысл этого выражения? Это явно не законный Javascript, поскольку ни /
, ни <
не являются допустимыми символами для имени функции.
То же самое происходит с использованием регулярных обозначений для функций, т.е. var a = function(b) { return function(c) { return c; } }
.
Вот скриншот:
![введите описание изображения здесь]()
Изменить: я попробовал следующее
var a = b => c => d => d;
a(1)
и результат
a/</<()
что заставляет меня думать о какой-то менее известной сокращенной нотации.
Ответы
Ответ 1
Комментарии на относительная проблема в bugzilla указали, что это часть соглашения об именах для анонимной функции.
В частности,
-
a/b
- внутренний b
of var a = function() { var b = function() {}; }
-
a<
- флаги a
"contributor" или в основном некоторая вспомогательная функция, которая вносит вклад в функцию с именем a
, будучи анонимной внутри нее.
Итак, a/<()
означает, что аномальная функция была объявлена в теле a
.