Większość witryn mówi "Callee" jako własność funkcji.argumenty są przestarzały. Ale niektóre witryny idą dalej i mówią całe funkcje.Argent jest przestarzały np. http://aptana.com/reference/api/arguments.html dlaczego wspomina tylko Callee, jeśli cała rutyna jest Martwy w wodzie? Właśnie odkryłem tylko "argumenty" i wydaje się niezwykle przydatne, np.: http://hundgred.com/how -To / tajne argumenty-array-javascript /

31
Chris Tolworthy 14 listopad 2011, 15:59

4 odpowiedzi

Najlepsza odpowiedź

Function.arguments jest przestarzałe, ale jest już niedoceniany na korzyść obiektu Vanilla {X1}}, który jest dostępny w funkcji. (np. przy użyciu x = arguments[i]; zamiast x = theFunc.arguments[i];)

Teraz jest preferowana (i jak mówisz, niezwykle przydatny) metodę uzyskiwania dostępu do ustalonych argumentów porządkowych.

48
Curtis 23 lipiec 2013, 14:55

Nie, argumenty Array nie jest przestarzały w najnowszej wersji specyfikacji 5.1 (patrz strona 60). Obiekt caller będzie jednak dostępny tylko wtedy, gdy kod nie jest w trybie ścisłym.

1
Mathias Schwarz 14 listopad 2011, 12:07

AFAIK arguments jest przestarzały jako właściwość funkcji . Zobacz Ten MDN-Link lub Ten

7
KooiInc 14 listopad 2011, 12:11

Callee jest przestarzały, ale argumenty są używane w wielu zastosowaniach. Nie wiem, czy argumenty są przestarzały. Możesz go użyć, aby uzyskać wszystkie parametry funkcji, nawet jeśli nie zostały zdefiniowane w funkcji (params).

Przez większość czasu, kiedy używałem, gdy opracowuję wtyczkę jQuery. Coś jak:

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

Jak widać tylko metodę przekazywaną jako parametr, ale w pierwszym, jeśli argumenty są podzielone po pierwszej wartości. W ten sposób możesz przekazać nazwę funkcji, a wszystkie parametry używane przez tę funkcję.

Pełny przykład: http://docs.jquery.com/plugins/authoring

1
Niels 14 listopad 2011, 12:06