Javascript: is the arguments array deprecated?

落花浮王杯 提交于 2019-11-27 21:31:48

问题


Most sites say "callee" as a property of Function.arguments is deprecated. But some sites go further and say the whole of Functions.argument is deprecated E.g. http://aptana.com/reference/api/Arguments.html Why only mention callee if the whole routine is dead in the water? I only just discovered "arguments" and it seems incredibly useful E.g: http://hungred.com/how-to/secret-arguments-array-javascript/


回答1:


Function.arguments is deprecated, but it's only deprecated in favor of the vanilla arguments object that's available within a function. (e.g. using x = arguments[i]; instead of x = theFunc.arguments[i];)

That's now the preferred (and as you say, extremely useful) method for accessing the ordinal arguments received.




回答2:


Afaik arguments is deprecated as a property of Function. See this MDN-link, or this one




回答3:


callee is deprecated, but the arguments is used in many applications. I don't know if arguments is deprecated. You can use it to get all the parameters of a function, even if there not defined within function( params ).

Most of the time I used when I develop a jQuery plugin. Something like:

$.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' );
    }    
  };

As you can see only method is passed as a parameter, but within the first if the arguments is split after the first value. This way you can pass a function name, and all parameters used by this function.

Full example: http://docs.jquery.com/Plugins/Authoring




回答4:


No, the arguments array is not deprecated in the latest 5.1 version of the specification (see page 60). The caller object will however only be available if the code is not in strict mode.



来源:https://stackoverflow.com/questions/8121243/javascript-is-the-arguments-array-deprecated

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!