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

  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • Jucyber Tutoriais

    Jucyber Tuto

    8 EYLÜL 2009
  • Tek Syndicate

    Tek Syndicat

    23 Temmuz 2008