SORU
3 HAZİRAN 2009, ÇARŞAMBA


Nasıl bir global bir değişken bildirmek için .js dosyası

.js tüm dosyaları ihtiyacım olan birkaç genel değişkenler ihtiyacım var.

Örneğin, aşağıdaki 4 dosyayı göz önünde bulundurun:

  1. global.js
  2. js1.js
  3. js2.js
  4. js3.js

Bir yolu var o ilan 3 global değişkenleri global.js erişim ve herhangi bir diğer 3 .js dosyaları düşünen ben yük üstünde 4 dosya bir HTML belge?

Birileri bu mümkün mü yoksa orada geçici bir çözüm bunu başarmak için ise söyleyebilir mi?

CEVAP
3 HAZİRAN 2009, ÇARŞAMBA


Önerilen yaklaşım:

window.greeting = "Hello World!"

Sonra herhangi bir işlev içinde erişebilirsiniz:

function foo() {

   alert(greeting); // Hello World!
   alert(window["greeting"]); // Hello World!
   alert(window.greeting); // Hello World! (recommended)

}

Bu yaklaşım iki nedenden dolayı tercih edilir.

  1. Niyet açık. var anahtar kullanımı kolay yerel ya da tam tersi olması amaçlanmıştır 14 ** küresel bildirmek yol açabilir. Değişken etki alanı bu tür Javascript geliştiricileri bir sürü karışıklığa bir nokta. Çok genel bir kural olarak, değişken tanımlama anahtar var önek window ile öncesinde tüm emin olun.

  2. Yerel olarak kapsamlı var var global veya tam tersi zarar gelmez anlamına gelir değişkenleri bu şekilde okumak için bu sözdizimini de standardize. Örneğin burada ne belirsiz olur:

 greeting = "Aloha";

 function foo() {
     greeting = "Hello"; // overrides global!
 }

 function bar(greeting) {
   alert(greeting);
 }

 foo();
 bar("Howdy"); // does it alert "Hello" or "Howdy" ?

Ancak, bu çok daha temiz ve daha az hata eğilimli (gerçekten tüm değişken ölçüm kuralları hatırlamak gerekmez)

 function foo() {
     window.greeting = "Hello";
 }

 function bar(greeting) {
   alert(greeting);
 }

 foo();
 bar("Howdy"); // alerts "Howdy"

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • Nightmare2005

    Nightmare200

    14 Ocak 2007
  • William Sledd

    William Sled

    24 EYLÜL 2006