Я анализирую следующие два URL-адреса с сайта Джона Ресига, но я не понимаю, как внесение имени анонимной функции имеет значение.
Мое понимание заключается в том, что имя, присвоенное анонимной функции, может использоваться только внутри определения функции и нигде за ее пределами, но в следующих ссылках это делает огромную разницу
Любое объяснение или ссылка будут большой помощью.
Я все еще путаюсь со следующими строками в # 14
var samurai = { yell: ninja.yell };
var ninja = {};
assert( samurai.yell(4) == "hiyaaaa", "The method correctly calls itself." );
Как метод Samurai.yell все еще способен указывать ninja.yell, когда ниндзя теперь указывает на пустой объект.
Единственное отличие между # 13 и # 14 заключается в предоставлении имени выражения функции в # 14.
Является ли ninja.yell COPIED кричать и не ссылаться, или это выражение функции NAMED имеет глобальную область видимости в таком сценарии?
То же самое происходит в # 13 и # 14, только разница в том, что функция названа в # 14 и не обозначена в # 13 плюс ninja = {} в # 14 и ninja = null в # 13. Есть ли скрытая концепция об ИМЕНИ FUNCTION EXPRESSIONS, которую я пропускаю, что делает # 14 работоспособным и # 13 неработоспособным.