_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.
});
有人可以帮我解释或解释为什么会发生这种情况..
答案 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
(可能来自另一种编程语言?),但这是错误的。