为什么没有定义arg?

时间:2015-03-13 12:40:15

标签: javascript jquery

_doAction = [{
closepop: function(){
  console.log( 'call' );
  var parntid = $(this).attr('data-parentid');
  $('#'+parntid).hide();
 }
}];

当我调用该方法时。

$(document).on('click', '.xyz', function(){
  var action = $(this).attr('data-eventname');

  _doAction[0][action].apply(this, args); // when use args getting error (args is undefined). Why?

  _doAction[0][action].apply(this, arguments); // when use arguments no error, working fine.
});

有人可以帮我解释或解释为什么会发生这种情况..

2 个答案:

答案 0 :(得分:3)

  

因为arguments对象不是args

arguments object是所有函数中可用的局部变量;

答案 1 :(得分:1)

JavaScript中没有名为args的内置变量。内置变量名为arguments,如下所述:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments

  

arguments对象是一个类似于Array的对象,对应于传递给函数的参数。

我不知道你在哪里知道应该定义args(可能来自另一种编程语言?),但这是错误的。