2013-08-20 13 views
7

JavaScriptでオブジェクト上の何かを上書きして、「偽」と表示することはできますか?オブジェクトを偽装する

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) { } 

私のオブジェクトには、isSetの値によって真実か偽って見えるようにすることができますか?

+0

"いいえ" ... – Matt

+1

まあ、 "多分"。しかし、それは恐ろしい考えです... – Alnitak

+0

Alnitak:どうやって "多分"それをやっていくのですか? – Matt

答えて

10

私が知る限り、これはできません。 ECMAScript-specificationを読んだ場合、if(isLoading)if(ToBoolean(isLoading) === true)と評価され、ToBoolean()は常にオブジェクトのtrueを返します(仕様の表を参照)。