Javascript 使一个物体变形
是否可以在JavaScript中重写对象上的某些内容,使其显示为“falsy” 例如,我创建了一个如下的对象: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
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
的东西,你为什么要做这样的事情?这看起来像是一个严重的反模式。