クロージャー (またはモジュール パターン) を定義するときに、一部の開発者が関数式の例var f = function{...};
を使用したり、関数宣言を使用したりするのを見てきましたfunction f {...}
。
巻き上げと一般的な違いは理解していますが、閉鎖に適用される可能性のある違いについては心配しています。
どちらが好まれるのか、なぜなのか疑問に思っています。利点/欠点はありますか? 一般的な違いがない場合、どちらがより一般的ですか?
以下の 2 つのスタイルを検討してください。
var deepThought = (function(){
var someSecret = "42";
function whatIsTheAnswerToTheUltimateQuestion() {
return someSecret;
}
function whatIsTheUltimateQuestion() {
return "I'm not sure yet. You might have to wait a while...";
}
return {
whatIsTheAnswerToTheUltimateQuestion : whatIsTheAnswerToTheUltimateQuestion,
whatIsTheUltimateQuestion : whatIsTheUltimateQuestion
};
})();
var deepThought2 = (function(){
var someSecret = "41";
var whatIsTheAnswerToTheUltimateQuestion = function () {
return someSecret;
};
var whatIsTheUltimateQuestion = function () {
return "I'm not sure yet. You might have to wait a while...";
};
return {
whatIsTheAnswerToTheUltimateQuestion : whatIsTheAnswerToTheUltimateQuestion,
whatIsTheUltimateQuestion : whatIsTheUltimateQuestion
};
})();