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
@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.
Nasıl Javascript Çağırmak İçin Bir Bağ...
Nasıl bir nesne'JavaScript / özel...
Nasıl JavaScript Açığa modül desen kul...
JavaScript: `yeni` değil kullanmak içi...
Nasıl bir JavaScript nesnesinin bir öz...