Come accedere al valore di un oggetto dall'interno di un metodo dello stesso oggetto in Javascript?
-
10-07-2019 - |
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?
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