Javascript 使一个物体变形

Javascript 使一个物体变形,javascript,Javascript,是否可以在JavaScript中重写对象上的某些内容,使其显示为“falsy” 例如,我创建了一个如下的对象: function BusyState() { var self = this; self.isSet = false; self.enter = function () { self.isSet = true; }; self.exit = function () { self.isSet = false; }; }; var isLoading = new Bus

是否可以在JavaScript中重写对象上的某些内容,使其显示为“falsy”

例如,我创建了一个如下的对象:

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) 
我可以像这样检查是否繁忙:

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
的值显示真实或虚假吗

据我所知,这是办不到的。如果您阅读了,您将看到
If(isLoading)
被评估为
If(ToBoolean(isLoading)==true)
,并且对于一个对象总是返回
true
(如您在规范中的表中所示)。

那么,“可能”。但这是一个可怕的想法……阿尔尼塔克:你会怎么“也许”去做呢?我在看密使的答案,但我测试了它,它不起作用。重新思考你的结构<代码>isLoading是一个可怕的对象名称。。。最好使用类似于
loader.isSet
的东西,你为什么要做这样的事情?这看起来像是一个严重的反模式。