最好使用JavaScript中的arguments属性?

Phi*_*enn 0 javascript

使用函数的arguments属性的正确方法是什么?这就是我目前使用它的方式,但我很确定我没有正确使用它:

首先,我定义我的参数:

parameters = {};
parameters.ID = $tr.data('ID');
parameters.Name = 'Name goes here';
parameters.td = $td;
UpdateName(parameters);
Run Code Online (Sandbox Code Playgroud)

并在功能:

var UpdateName = function(){
    var local = {};
    local.ID = arguments[0].ID;
    local.Name = arguments[0].Name;
    local.td = arguments[0].td;

    local.jqXHR = $.ajax('Remote/Ajax.cfc', {
        data: {
            method:'UpdateName'
            ,returnformat:'json'
            ,ID:local.ID
            ,Name:local.Name
        }
    });
    local.jqXHR.success(function(result){
        if (result.MSG == '') {
            local.td.text(local.Name).addClass('success');
        } else {
            local.td.addClass('err');
        };
    });
    local.jqXHR.error(function(result){
        local.td.addClass('err');
    });
}
Run Code Online (Sandbox Code Playgroud)

Way*_*ett 5

arguments对象对于接受任意/未知数量的参数的函数最有用.MDC给出了这个用于创建任何长度的HTML列表的示例:

function list(type) {
  var result = "<" + type + "l>";

  // iterate through non-type arguments
  for (var i = 1; i < arguments.length; i++)
    result += "<li>" + arguments[i] + "</li>";

  result += "</" + type + "l>"; // end list

  return result;
}
Run Code Online (Sandbox Code Playgroud)

......可以像这样使用:

var listHTML = list("u", "One", "Two", "Three");
// listHTML is "<ul><li>One</li><li>Two</li><li>Three</li></ul>"
Run Code Online (Sandbox Code Playgroud)

因为arguments,我们可以传递任意数量的项目list,它只是工作.(请注意,即使在这种情况下,已知参数type,也会被命名,并且迭代arguments开始于其第二个元素.)

您的参数列表是明确定义的,因此没有理由不在函数声明中简单地命名参数.随意使用arguments是不必要的,也很难阅读.