Javascript和Firefox 4问题

时间:2011-06-16 22:42:07

标签: javascript jquery firefox firefox4

下面的代码在FF3.X和IE7到9中工作正常,但在FF4中没有。

我的代码位于我的文件的两个位置:

                var arguments = "method=getoptions";
                arguments += "&dropzone=" + dictKey;
                arguments += "&format=disc";
                arguments += "&datasetid=" + datasetid;
                arguments += "&varnumber=" + varnumber;
                arguments += "&varSectionId=" + varSectionId;
                arguments += "&catindex=" + catIndex;
                arguments += "&defaultid=dv_cat_opts_default_body";
                arguments += "&mmocid=dv_cat_opts_mmoc_body";

                 alert(arguments);

产生

               method=getoptions&dropzone=Row_1&format=disc&datasetid=1&varnumber=206&varSectionId=FUV&catindex=&defaultid=dv_cat_opts_default_body&mmocid=dv_cat_opts_mmoc_body

这是正确的,但文件中其他地方的代码相同

                 var arguments = "method=getoptions";
                arguments += "&dropzone=" + dictKey;
                arguments += "&format=disc";
                arguments += "&datasetid=" + datasetid;
                arguments += "&varnumber=" + varnumber;
                arguments += "&varSectionId=" + varSectionId;
                arguments += "&catindex=" + catIndex;
                arguments += "&defaultid=dv_cat_opts_default_body";
                arguments += "&mmocid=dv_cat_opts_mmoc_body";

                 alert(arguments);

输出这个,最终在我的ajax中调用错误:

             [object Arguments]&dropzone=Row_1&format=cont&datasetid=1&varnumber=1125&varSectionId=FUV&catindex=&defaultid=dv_cont_opts_default_body&mmocid=dv_cont_opts_mmoc_body

那么对象Arguments的处理是什么?

2 个答案:

答案 0 :(得分:4)

变量arguments是函数中可用的特殊对象,它包含传递给函数的所有参数。

https://developer.mozilla.org/en/JavaScript/Reference/functions_and_function_scope/arguments

换句话说,请将变量名arguments视为保留关键字 - 就像您永远不会命名变量if一样,不要使用变量名{{} 1}}或者你会得到意想不到的结果。

为什么这里的东西,你可能会问 - 它允许你编写使用不同数量和参数顺序的函数。在您的函数中,您将编写代码来确定传递了哪些参数以及它们是什么。它需要更多代码,但您可以使用此技术创建一些非常灵活的可重用代码。查看Mootools或jQuery的一些内部函数,你会发现这些流行的框架大量使用arguments对象。

考虑:

arguments

在此处试试:http://jsfiddle.net/zwGMJ/

答案 1 :(得分:1)

arguments是JavaScript函数中的保留变量,它包含函数的参数(也称为参数)。 因此,例如,function(a){alert(a);}function(){alert(arguments[0]);}相同。 要修复此错误,只需将变量的名称更改为其他名称即可。

广告@米