グローバルな永続性とグローバルアクセスが明示的に必要な場合を除いて、常にローカル変数を使用する必要があります。この特定の状況では、ローカル変数を使用する必要があります(2番目のオプション)。
興味がある場合は、他のスコープが高くなる前にローカルスコープが最初に検索されるため、ローカル変数はほとんどのJSエンジンでグローバル変数よりわずかに高速ですが、これはローカルとグローバルを選択する理由ではありません。
グローバル変数を明示的に必要としない限り、常にローカル変数を使用します。グローバル変数を使用するときは、Webページやプロジェクト、または使用しているライブラリで他と重ならない名前を慎重に選択する必要があります。私は他のグローバルとの競合を避けるために、ほとんどすべてのグローバル変数をオブジェクトにスコープとして指定します。
また、最初の例のように明示的に宣言された(私は偶然)グローバル変数を使用しないでください。グローバル変数が必要な場合は、グローバルスコープで宣言します。
あなたは次の1つの.each()
の関数呼び出しから生き残るために変数が必要な場合、あなたはそれを1つ上のレベルまで定義できますが、このような、まだローカル変数:
function myFunction() {
var maxHeight = 0;
$('.myClass').each(function(){
var myC = $(this);
if (myC.height() > maxHeight) {
maxHeight = myC.height();
}
}
// maxHeight is set here
}
ローカル、常に... – Raynos