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

当我打电话的方法。为什么arg没有定义?

$(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

你为什么期望它能与'args'一起工作? – Hacketo 2015-03-13 12:42:20

+2

因为'args'不存在。你已经证明了'arguments'是包含所有传入函数的参数的数组,而不是'args',那么你对此有什么困惑? – forgivenson 2015-03-13 12:44:32

+0

@Hacketo,因为我将(this)对象放入apply中。 – Tamesh 2015-03-13 12:49:33

回答

2

由于其arguments对象不args

arguments object是一个局部变量可用内所有功能;

+0

感谢您的意见......... – Tamesh 2015-03-13 13:35:50

+0

@Tamesh请接受答案,如果它有帮助谢谢 – Tushar 2015-03-17 10:45:09

相关问题