SORU
20 EKİM 2009, Salı


Nasıl Javascript bir değişkeni kullanmak için?

Ben bir global değişken Javascript (aslında bir pencere özelliği, ama sanmıyorum önemli olan buydu zaten kalabalık tarafından bir önceki script ama istemiyorum başka bir komut çalıştırılacak daha sonra onun değeri yoksa bile tanımlanmış.

some_var = undefined verdim ve test amacı typeof some_var == "undefined" için çalışıyor ama gerçekten doğru yolu bu konuda gitmek olduğunu.

Ne düşünüyorsun?

CEVAP
20 EKİM 2009, Salı


@scunlife cevabı çalışacak, ama teknik olarak olması gerektiği gibi

delete window.some_var; 

sil hedef nesnenin bir özelliği değil, hayır-op olması gerekiyordu. örneğin,

(function() {
   var foo = 123;
   delete foo; // wont do anything, foo is still 123
   var bar = { foo: 123 };
   delete bar.foo; // foo is gone
}());

Ama genel değişkenler aslında window nesnesinin bir üyesi beri çalışıyor.

Prototip zincirleri söz konusu olduğunda, sil kullanarak sadece hedef nesne özelliği ve prototip kaldırır çünkü daha karmaşık alır. örneğin,

function Foo() {}
Foo.prototype = { bar: 123 };
var foo = new Foo();
// foo.bar is 123
foo.bar = 456;
// foo.bar is now 456
delete foo.bar;
// foo.bar is 123 again.

Bu yüzden dikkatli olun.

EDİT: Benim cevap somewhat inaccurate ("Yanlış" sonunda). bkz. Bağlantı tüm detaylarıyla açıklıyor, ama Özet silme nesne, tarayıcılar ve göre arasında çok büyük farklar olabilir. delete object.someProp genellikle güvenli olarak uzun object !== window gibi olmalıdır. Ben hala doğru şartlar altında, ancak silmek değişkenleri var ilan için kullanmıyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • Fuse

    Fuse

    21 Kasım 2005
  • William Hyde

    William Hyde

    23 HAZİRAN 2008