Pergunta

Eu estou tentando adicionar um () "método" toBool dentro do objeto Objeto usando o protótipo ... algo como isto:

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

Mas eu estou tendo um problema tentando acessar o valor do objeto de dentro do mesmo this.toLowerCase() método de objeto

Como isso deve ser feito?

Foi útil?

Solução

Seu código não funciona porque toLowerCase () é um método de String, mas não da Number. Então, quando você tenta toLowerCase call () do número 1, ele não funciona. Uma solução seria apenas para converter o número para string primeiro:

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);
 }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top