2015-03-13 135 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

相關問題