Javascript: The Definitive Guideを読んでいるときに、自分の関数のプロパティを定義するセクションに興味をそそられました。例を挙げましょう:
function foo( ) {
foo.bar++;
return foo.bar;
};
foo.bar = 0;
foo( ); // returns 1
foo( ); // returns 2
したがって、上記は、これらのプロパティを使用して、関数への複数の呼び出し間でデータを保持する方法を示しています。
上記の例ではプロパティが本質的に公開されていることを理解していますが、これを使用すべきではない理由や、クロージャを使用してプロパティを非公開にするという明らかな例以外に、データを永続化する他の方法が好まれる理由はありますか?