Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象属性的引用错误_Javascript_Google Apps Script - Fatal编程技术网

Javascript对象属性的引用错误

Javascript对象属性的引用错误,javascript,google-apps-script,Javascript,Google Apps Script,我在Google Apps脚本引擎上用Javascript构建了一个对象,每次运行脚本时,我都会收到一个引用错误,表示未定义uName 以下是相关代码: function DataSet() { this.uName = ""; this.dField = ""; this.qUrl = "http://api.bfbcs.com/api/pc?players="+uName+"&fields="+dFeilds; this.data = ""; this.dQue

我在Google Apps脚本引擎上用Javascript构建了一个对象,每次运行脚本时,我都会收到一个引用错误,表示未定义uName

以下是相关代码:

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;
根据我找到的所有来源,我不需要使用关键字var,当我包含它时,它会抛出其他错误

会发生什么事


谢谢

好的,是的,变量
uName
在您发布的代码片段中没有定义。都不是
dQuery
execQuery
,也不是
dFeilds
(拼写!)。它们是不是来自你没有给我们看的其他代码

this.uName有一个属性
,但对象属性与JavaScript中的变量完全不同。与Java不同,它们不共享名称空间

此外,还需要对参数进行URL编码。例如:

this.qUrl = "http://api.bfbcs.com/api/pc?players="+encodeURIComponent(this.uName)+"&fields="+encodeURIComponent(this.dField);

嗯,是的,在您发布的代码片段中没有定义变量
uName
。都不是
dQuery
execQuery
,也不是
dFeilds
(拼写!)。它们是不是来自你没有给我们看的其他代码

this.uName有一个属性
,但对象属性与JavaScript中的变量完全不同。与Java不同,它们不共享名称空间

此外,还需要对参数进行URL编码。例如:

this.qUrl = "http://api.bfbcs.com/api/pc?players="+encodeURIComponent(this.uName)+"&fields="+encodeURIComponent(this.dField);

我不确定您想做什么,但我看不到您的函数接收到这些参数:

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;

我不确定您想做什么,但我看不到您的函数接收到这些参数:

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;

@OP:根据Bob的观点,Javascript中的
这个
与C、C或Java等语言中的
这个
非常不同。不要让相似的名字和(在某些方面)相似的功能欺骗你。除此之外,您永远不能像在其他代码中一样关闭
,Javascript中从未假设过它。@bobince,谢谢,我做了相应的更改并更改了URL。现在一切正常。在URL的
d字段
前面添加了一个缺少的
this.
。旁白:哪种礼仪更好?更正答案中的一个小错误或留下一条注释指出错误,并将编辑工作交给答案作者?我省略了
这个
,因为我不清楚复数形式的
dFeild是否应该与
dFeild
相同。不过你可能是对的![梅塔:对于一些小错误,可以进行编辑……我想我可能倾向于对已经被接受的答案进行更多的编辑,而在没有被接受的答案时,我会多加评论,但我不能完全解释这一点。]@OP:从Bob的观点来看,Javascript中的
这个
与C、C或Java等语言中的
这个
非常不同。不要让相似的名字和(在某些方面)相似的功能欺骗你。除此之外,您永远不能像在其他代码中一样关闭
,Javascript中从未假设过它。@bobince,谢谢,我做了相应的更改并更改了URL。现在一切正常。在URL的
d字段
前面添加了一个缺少的
this.
。旁白:哪种礼仪更好?更正答案中的一个小错误或留下一条注释指出错误,并将编辑工作交给答案作者?我省略了
这个
,因为我不清楚复数形式的
dFeild是否应该与
dFeild
相同。不过你可能是对的![梅塔:对于小错误,可以进行编辑……我想我可能倾向于对已经被接受的答案进行更多的编辑,而在没有被接受的答案的情况下则会进行更多的评论,但我无法完全解释这一点。]在我在W3C网站上查看的示例中,他们没有为底部的方法传递参数。然而,他们对财产做了,但我在其他地方看到,你可以放弃。必须为类指定变量,然后指定属性并将变量分配给该属性,这似乎有点多余。。。。但是,直接通过类方法更新该属性是可以的,让变量只用于创建定义的内存位置。除非我可以这样做:this.uName=var uName;声明
var
与内存位置无关,而是与指定一个变量将位于其中的块有关。参数是自动的局部变量,因此您不需要
var
它们。在我在W3C网站上看到的示例中,它们没有为底部的方法传递参数。然而,他们对财产做了,但我在其他地方看到,你可以放弃。必须为类指定变量,然后指定属性并将变量分配给该属性,这似乎有点多余。。。。但是,直接通过类方法更新该属性是可以的,让变量只用于创建定义的内存位置。除非我可以这样做:this.uName=var uName;声明
var
与内存位置无关,而是与指定一个变量将位于其中的块有关。参数是自动的局部变量,所以您不需要
var
它们。