1

オートコンプリート ウィジェットのソースを調べて、作成中のウィジェットを支援しようとしています。この行は私には意味がありません:

_value: function() {
  return this.valueMethod.apply( this.element, arguments );
},

valueMethod は次のように定義されます。

this.valueMethod = this.element[ this.element.is( "input,textarea" ) ? "val" : "text" ];

では、argumentsパラメータはどこから来るのでしょうか? 私が理解しているように、JavaScriptには機能範囲があるためarguments、渡す必要はありません。

私は混乱しています。誰かが助けてくれれば、本当に感謝しています。

4

2 に答える 2

1

パラメータは、arguments明示的に定義しなくても、javascript の新しい関数内で常に自動的に定義されるものです。valueMethodapplyが関数であると仮定して、それらの引数を渡します。this.element[ this.element.is( "input,textarea" ) ? "val" : "text" ];さらに、関数ポインタを返すと仮定できます。

于 2013-01-06T18:59:25.593 に答える
1

[argumentsは] 関数に渡される引数に対応する配列のようなオブジェクトです。オブジェクトは、argumentsすべての関数内で使用できるローカル変数です。のプロパティとしての引数はFunction使用できなくなりました。

ソース: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Functions_and_function_scope/arguments

つまり、ほとんどの意図と目的のために、関数に渡される引数を含む配列であり、さまざまな理由で役立ちます...特に可変数の引数を受け入れるメソッドまたは関数を作成する場合。この場合、すべての引数は別のメソッドに渡されているだけthis.valueMethodです。

于 2013-01-06T19:07:27.260 に答える