Javascript: массив аргументов устарел? - PullRequest
30 голосов
/ 14 ноября 2011

Большинство сайтов говорят, что callee как свойство Function.arguments устарело.Но некоторые сайты идут дальше и говорят, что весь Functions.argument устарел, например, http://aptana.com/reference/api/Arguments.html Зачем упоминать вызываемого, только если вся рутина мертва в воде?Я только что обнаружил «аргументы», и это кажется невероятно полезным, например: http://hungred.com/how-to/secret-arguments-array-javascript/

Ответы [ 4 ]

48 голосов
/ 14 ноября 2011

Function.arguments устарела , но устарела только в пользу объекта vanilla arguments, доступного внутри функции.(например, используя x = arguments[i]; вместо x = theFunc.arguments[i];)

Теперь это предпочтительный (и, как вы говорите, чрезвычайно полезный) метод для доступа к полученным порядковым аргументам.

7 голосов
/ 14 ноября 2011

Afaik arguments устарело как свойство функции . См. эту MDN-ссылку или эту

1 голос
/ 14 ноября 2011

Нет, массив arguments не считается устаревшим в последней версии спецификации 5.1 (см. Стр. 60). Однако объект caller будет доступен только в том случае, если код не находится в строгом режиме.

1 голос
/ 14 ноября 2011

callee устарела, но аргументы используются во многих приложениях.Я не знаю, если аргументы устарели.Вы можете использовать его для получения всех параметров функции, даже если они не определены внутри функции (params).

Большую часть времени я использовал при разработке плагина jQuery.Примерно так:

$.fn.tooltip = function( method ) {
    if ( methods[method] ) {
      return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
    } else if ( typeof method === 'object' || ! method ) {
      return methods.init.apply( this, arguments );
    } else {
      $.error( 'Method ' +  method + ' does not exist on jQuery.tooltip' );
    }    
  };

Как видите, в качестве параметра передается только метод, но внутри первого, если аргументы разделяются после первого значения.Таким образом, вы можете передать имя функции и все параметры, используемые этой функцией.

Полный пример: http://docs.jquery.com/Plugins/Authoring

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...