我通过将“真实”布尔值传递给函数来在脚本中设置模式。在函数中,一个简单的if
语句检查参数是否为true
或false
。我有时将它作为一直有效的字符串或布尔值传递,但由于某种原因,它不是为了这个:
setMode: function(Setting) {
if (Setting) {
console.log('Enabling mode');
} else {
console.log('Disabling mode');
}
}
例如,当我将一个字符串传递给控制台'false'
并记录Setting
到控制台时,控制台说false
,但该if
语句认为这是真的。
我必须将此添加到函数的开头才能使其工作:
if (typeof Setting == 'string') { Setting = (Setting == "true"); }
它的一个使用示例:
var inverted = $('INPUT[name="Mode"]').prop('checked');
app.setMode(inverted);
另一个:
var mode = localStorage.getItem('Mode');
this.setMode(mode);
这太奇怪了,因为我多年来一直在做这种事情,但现在才刚刚开始。也许是因为我正在使用localStorage
and .prop
?