32

ほとんどのサイトでは、Function.argumentsのプロパティとして「callee」は非推奨とされています。しかし、一部のサイトはさらに進んで、Functions.argument全体が非推奨であると述べています。例:http ://aptana.com/reference/api/Arguments.htmlルーチン全体が水中で死んでいる場合にのみ、呼び出し先に言及するのはなぜですか?私は「引数」を発見したばかりで、信じられないほど便利なようです。例:http: //hungred.com/how-to/secret-arguments-array-javascript/

4

4 に答える 4

48

Function.arguments arguments非推奨ですが、関数内で使用できるバニラオブジェクトを優先して非推奨になっています。(例:x = arguments[i];の代わりに使用x = theFunc.arguments[i];

これは、受け取った序数の引数にアクセスするための好ましい(そしてあなたが言うように、非常に便利な)方法です。

于 2011-11-14T12:06:04.147 に答える
7

Afaikは、Functionのプロパティとしてarguments非推奨になりました。このMDNリンク、またはこれを参照してください

于 2011-11-14T12:11:35.197 に答える
1

calleeは非推奨ですが、引数は多くのアプリケーションで使用されています。引数が非推奨かどうかはわかりません。function(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

于 2011-11-14T12:06:48.670 に答える
1

いいえ、arguments配列は、仕様の最新の5.1バージョンでは非推奨ではありません(60ページを参照)。ただし、callerオブジェクトは、コードが厳密モードでない場合にのみ使用できます。

于 2011-11-14T12:07:02.043 に答える