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

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • Lin Steven

    Lin Steven

    17 EKİM 2006
  • MikeyMacintosh

    MikeyM

    28 Aralık 2009