Question

I'm trying to add a toBool() "method" inside the Object object using prototype... something like this:

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()) 

But I'm having an issue trying to access the value of the object from inside the same object method this.toLowerCase()

How should it be done?

Was it helpful?

Solution

Your code doesn't work because toLowerCase() is a method of String, but not of Number. So, when you try to call toLowerCase() on the number 1, it doesn't work. A solution would be just to convert the number to string first:

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);
 }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top