Большинство сайтов говорят, что "вызываемый" как свойство функции .arguments устарел. Но некоторые сайты идут дальше и говорят, что все функции. Аргумент устарел. http://aptana.com/reference/api/Arguments.html Почему только упоминание о вызове, если вся рутина мертва в воде? Я только что открыл "аргументы" и кажется невероятно полезным. Например: http://hungred.com/how-to/secret-arguments-array-javascript/
Javascript: массив аргументов устарел?
Ответ 1
Function.arguments
устарел, но он только устарел в пользу объекта vanilla arguments
, доступного внутри функции. (например, используя x = arguments[i];
вместо x = theFunc.arguments[i];
)
Теперь предпочтительный (и, как вы говорите, чрезвычайно полезный) метод доступа к полученным порядковым аргументам.
Ответ 2
Afaik arguments
устарел как свойство функции. Смотрите эту MDN-ссылку или этот.
Ответ 3
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
Ответ 4
Нет, массив аргументов не устарел в последней версии спецификации 5.1 (см. стр. 60). Однако объект caller
доступен только в том случае, если код не находится в строгом режиме.