javascript - 按值或引用传递参数

时间:2016-11-09 17:31:29

标签: javascript jquery json ajax parameter-passing

编辑:我能找到的解决js中循环闭包的最佳解释是Javascript infamous Loop issue?

所以我的代码可以用作:

  a.onclick = function (url) {
            return function () {
                OnSearchResultClick(url);
            }
        }(urlStr);

POST: 我试图通过迭代从ajax请求收到的json数组在js中动态构建一个列表。

方案1:

 for (var i = 1; i < results.length; i++) {
        //alert(results[i]['url']);
        var nameStr = results[i]['name'];
        var urlStr = results[i]['url'];

        var a = document.createElement("a");
        a.textContent = nameStr;
        a.id = nameStr;
        a.href = "#";
        a.onclick = function () {OnSearchResultClick(urlStr);};

在firebug中我看到onclick事件将完全调用:OnSearchResultClick(urlStr),因此将获取urlStr的最后一个设置值,这意味着以这种方式创建的所有标签都使用相同的参数调用该函数。

方案2:

a.onclick = function () {OnSearchResultClick(results[i]['url']);}

更奇怪的是,在firebug中我得到TypeError:results [i]未定义

方案3: 试图传递urlStr.value,它是未定义的

所以我想知道如何在urlStr变量

中发送变量而不是字符串值

我一直在检查javascript通过值或引用传递参数的文档,但似乎无法使其工作

任何帮助将不胜感激

感谢

0 个答案:

没有答案