Erreur de référence pour la propriété de Javascript Object
-
27-09-2019 - |
Question
J'ai construit un objet en Javascript sur le moteur de script Google Apps et chaque fois que je lance mon script, je reçois une erreur de référence disant UNAME n'est pas défini.
Voici le code relivant:
function DataSet()
{
this.uName = "";
this.dField = "";
this.qUrl = "http://api.bfbcs.com/api/pc?players="+uName+"&fields="+dFeilds;
this.data = "";
this.dQuery = dQuery;
this.execQuery = execQuery;
Selon toutes les sources que j'ai trouvé, je ne devrais pas avoir besoin d'utiliser le mot-clé var, et quand je ne comprends cela, il jette d'autres erreurs.
Que pourrait-on se passe?
Merci
La solution
Eh bien, oui, la uName
variable ne sont pas défini, dans l'extrait que vous avez publié. Ni les environs dQuery
ou execQuery
, ou dFeilds
(orthographe!). Ils viennent d'un autre code que vous ne nous avez pas montré?
Il y a un propriété this.uName
, mais les propriétés de l'objet sont une chose complètement différente de variables JavaScript. Contrairement à Java, ils ne partagent pas un espace de noms.
, vous avez besoin des paramètres encode URL. par exemple:.
this.qUrl = "http://api.bfbcs.com/api/pc?players="+encodeURIComponent(this.uName)+"&fields="+encodeURIComponent(this.dField);
Autres conseils
Je ne sais pas ce que vous essayez de faire, mais je ne vois pas votre fonction de réception de ces paramètres:
function DataSet(uName,dFeilds,dQuery,execQuery)
{
this.uName = "";
this.dFeild = "";
this.qUrl = "http://api.bfbcs.com/api/pc?players="+uName+"&fields="+dFeilds;
this.data = "";
this.dQuery = dQuery;
this.execQuery = execQuery;