gpt4 book ai didi

JavaScript 名称冲突?

转载 作者:行者123 更新时间:2023-12-02 20:06:12 27 4
gpt4 key购买 nike

我有一个看起来完全像这样的函数:

function exportSelectedToExcel(id)
{
var selectedRows = new Array();

//Retrieve selected items from the grid
selectedRows = grid.getGridParam('selarrrow');

//Always add the item in id, it doesn't matter if it's there twice.
selectedRows[selectedRows.length] = id;

//Build the url
var params = selectedRows.join("&id=");
var exportUrl = "/Export/SelectListExporters?id=" + params;

//Show the selection form
SelectionWindow.show(exportUrl, "#selectionForm", 400);
}

每次运行此函数时,数组都会增加至少一项(我添加到其末尾的一项)。这肯定意味着我在系统的其他地方有另一个同名的数组,对吗?

谷歌浏览器或火狐浏览器有什么方法可以找出该变量在哪里?

编辑:整个项目中没有这样的变量,从 Visual Studio 中验证。

编辑2:这就是我所说的:http://www.secondpersonplural.ca/jqgriddocs/_2eb0fb79d.htm

编辑3:我已将代码更改为以下内容:

var retrievedRows = grid.getGridParam('selarrrow');
var selectedRows = retrievedRows.slice(0);

现在它按预期工作了。

最佳答案

首先,您的代码可以简化为:

var selectedRows = grid.getGridParam('selarrrow');
selectedRows.push(id);

看看这个,很明显 grid.getGridParam() (无论它是什么)是问题的原因。调试它(可能通过打印 selectedRows)并调查它。

selectedRows 是在函数内部本地声明的,因此即使存在同名的全局变量,也不会影响您的函数。

关于JavaScript 名称冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7388123/

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