John Resigのサイトから次の2つの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はyellにコピーされ、参照されませんか、またはこれらの種類のNAMED関数式は、このようなシナリオでグローバルスコープを持ちますか?
同じことが#13と#14でも起こりますが、唯一の違いは、関数が#14で名前が付けられ、#13で名前が付けられていないことと、#14でninja = {}、#13でninja=nullであるということです。#14が機能し、#13が機能しなくなる、私が見逃しているNAMEDFUNCTIONEXPRESSIONSに関する隠された概念はありますか。