Come accedere al valore di un oggetto dall'interno di un metodo dello stesso oggetto in Javascript?

StackOverflow https://stackoverflow.com/questions/1822258

Domanda

Sto cercando di aggiungere un metodo toBool () " " all'interno dell'oggetto Object usando il prototipo ... qualcosa del genere:

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

Ma sto riscontrando un problema nel tentativo di accedere al valore dell'oggetto dall'interno dello stesso metodo oggetto this.toLowerCase()

Come dovrebbe essere fatto?

È stato utile?

Soluzione

Il tuo codice non funziona perché toLowerCase () è un metodo di String, ma non di Number. Quindi, quando provi a chiamare toLowerCase () sul numero 1, non funziona. Una soluzione sarebbe solo quella di convertire prima il numero in stringa:

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);
 }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top