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

+2

Потому что 'args' не существует. Вы уже показали, что 'arguments' - это массив, содержащий все аргументы, переданные в функцию, а не' args', так что вас смущает? – forgivenson

+0

@Hacketo, потому что я помещаю (этот) объект в приложение. – Tamesh

ответ

2

Поскольку его arguments объект не args

arguments object локальная переменная доступна в все функции;

+0

спасибо за комментарии ......... – Tamesh

+0

@Tamesh Примите ответ, если он помог спасибо – Tushar

1

В JavaScript нет встроенной переменной с именем args. Встроенная переменная называется arguments, как описано здесь:

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

объект Аргументы является массив-подобный объект, соответствующий аргументам, передаваемым функции.

Я не уверен, где у вас возникла мысль, что должен быть определен args (возможно, с другого языка программирования?), Но это неправильно.

+0

ohh. я не знаю встроенную переменную, в любом случае спасибо за ваши комментарии – Tamesh

Смежные вопросы