2013-08-20 15 views
7

JavaScript'teki bir nesnede bir şeyi geçersiz kılmak mümkün mü?Nesne oluştur Falsy

exampe için, böyle bir nesne oluşturun:

if (isLoading.isSet) { } 

Ama kısaltma olarak bu yazabilmek istiyorum:

function BusyState{ 
    var self = this; 
    self.isSet = false; 
    self.enter = function() { self.isSet = true; }; 
    self.exit = function() { self.isSet = false; }; 
}; 

var isLoading = new BusyState(); 
isLoading.enter(); 

Böyle meşgul kontrol edebilirsiniz :

if (isLoading) { } 

benim nesnesine bir şey yapabilir miyim onu ​​truthy veya falsy isset değerine bağlı olarak görünmesini sağlamak için?

+0

"Hayır" ........... – Matt

+1

iyi, "belki". Ama bu korkunç bir fikir ... – Alnitak

+0

Alnitak: Bunu nasıl yapabildin? – Matt

cevap

10

Bildiğim kadarıyla bu yapılamaz. Eğer ECMAScript-specification okuyorsanız, if(isLoading)'un if(ToBoolean(isLoading) === true) ve ToBoolean() olarak değerlendirildiğini görürsünüz, bir nesne için her zaman true'u döndürür (belirtim tablosunda görebileceğiniz gibi).