Возможный дубликат:
JavaScript: var functionName = function() {} vs function functionName() {}
В чем отличие выражения функции от объявления в Javascript?
Я знаю различия между декларациями функций и выражениями, но столкнулся с этим кодом с использованием имени функции и хочу понять, что происходит, когда мы запускаем его:
var abc = function def() {
console.log("Wait! What??");
}
Я знаю, что это не способ JavaScript, но просто хочу знать несколько вещей:
- Что происходит с
abc
? Почему это работает?abc
можно вызвать, но неdef
, почему? - Является ли это объявлением функции или выражением?
-
def
undefined
- почему? Если это так, утечки памяти? - Почему
abc.prototype
есть функцияdef
?
Спасибо