我正在尝试使用原型在Object对象中添加一个toBool()“方法”......类似这样:
Object.prototype.toBool = function ()
{
switch(this.toLowerCase())
{
case "true": case "yes": case "1": return true;
case "false": case "no": case "0": case null: return false;
default: return Boolean(string);
}
}
var intAmount = 1;
if(intAmount.toBool())
但我在尝试从同一对象方法this.toLowerCase()
应该怎么做?
答案 0 :(得分:1)
您的代码不起作用,因为toLowerCase()是String的方法,但不是Number的方法。因此,当您尝试在数字1上调用toLowerCase()时,它不起作用。解决方案就是首先将数字转换为字符串:
Object.prototype.toBool = function ()
{
switch(String(this).toLowerCase())
{
case "true": case "yes": case "1": return true;
case "false": case "no": case "0": case null: return false;
default: return Boolean(string);
}
}