gpt4 book ai didi

Javascript 和 Firefox 4 问题

转载 作者:行者123 更新时间:2023-11-29 09:58:38 25 4
gpt4 key购买 nike

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

我的文件中有 2 个位置有这段代码:

                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 是函数中可用的特殊对象,它包含传递给函数的所有参数。

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

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

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

考虑:

function alertError() {
var exception = false;
var message = false;
for( var i = 0; i < arguments.length; i++ ) {
if (typeof arguments[i] == 'object')
exception = arguments[i];
if (typeof arguments[i] == 'string')
message = arguments[i];
}

if (message == false)
message = 'No details';
if (exception != false)
message += ', exception: '+exception.message;

alert('There has been an error: '+message);
}
alertError("No exceptions here!");
try {
var t = t.doesnotexist;
} catch (e) {
alertError(e, 'Testing');
}

在这里试试:http://jsfiddle.net/zwGMJ/

关于Javascript 和 Firefox 4 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6379450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com