2013-08-20 8 views
7

क्या जावास्क्रिप्ट में किसी ऑब्जेक्ट पर कुछ ओवरराइड करना संभव है ताकि यह 'गलत' दिखाई दे?ऑब्जेक्ट को गलत बनाएं

exampe के लिए, मैं इस तरह एक वस्तु बनाने के लिए:

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(); 

मैं इस तरह व्यस्त के लिए जाँच कर सकते हैं:

if (isLoading.isSet) { } 

लेकिन मैं एक आशुलिपि के रूप में यह लिखने में सक्षम होना चाहते हैं :

if (isLoading) { } 

क्या मैं अपने ऑब्जेक्ट में कुछ ऐसा कर सकता हूं ताकि यह आईएससेट के मूल्य के आधार पर सच्चाई या झूठी दिखाई दे?

+0

"नहीं" ........... – Matt

+1

अच्छी तरह से, "शायद"। लेकिन यह एक भयानक विचार है ... – Alnitak

+0

अलनिटक: आप इसे "शायद" कैसे कर सकते हैं? – Matt

उत्तर

10

जहाँ तक मुझे पता है कि यह नहीं किया जा सकता है। यदि आप ECMAScript-specification पढ़ते हैं तो आप देखेंगे कि if(isLoading) का मूल्यांकन if(ToBoolean(isLoading) === true) और ToBoolean() किसी ऑब्जेक्ट के लिए हमेशा true पर लौटाएगा (जैसा कि आप विनिर्देश में तालिका में देख सकते हैं)।

संबंधित मुद्दे