使var可用于javascript中的内联函数

时间:2014-12-26 09:47:57

标签: javascript jquery

我想创建该功能:

generateJson = function()
{
    var controls = {
        "invoicedate" : "invoicedate",
        "duedate" : "duedate"
    };

    var jsonLog = {};

    $.each(controls, function(index, value, jsonLog) {
      jsonLog[value] = "t";
    });
    $('#jsoncode').val(JSON.stringify(jsonLog));
}

我有一个错误:未捕获的TypeError:无法设置属性' invoicedate'未定义的

如何在内联函数中使jsonLog变量可用?

此致

2 个答案:

答案 0 :(得分:4)

从传递给each的函数中删除第三个参数,因为:

  1. each不会传递任何内容
  2. 它会在您将对象分配给
  3. 的更宽范围内屏蔽同名变量

答案 1 :(得分:2)

传递jsonLog作为第三个参数是覆盖或屏蔽父范围中的前一个实际jsonLog

$.each(controls, function(index, value) {
      jsonLog[value] = "t";
    });