ここに表示されている関数で、関数の引数をよりよく理解/確認しようとしています。
function newFunction(data, status){
関数は特にデータ変数とステータス変数に適用されますか?
議論がどのように機能するのかよくわかりません。
ここに表示されている関数で、関数の引数をよりよく理解/確認しようとしています。
function newFunction(data, status){
関数は特にデータ変数とステータス変数に適用されますか?
議論がどのように機能するのかよくわかりません。
基本シナリオ
関数が定義されると、その()
領域は入力に使用されます。これらの入力は、送信されるデータにマップされます。
function newFunction(data, status){
}
newFunction(1,2);
このシナリオでdata
は、の値1
が割り当てられ、スコープのstatus
値が割り当てられます。2
newFunction
不一致の入力
ただし、必ずしも直接マッピングされるとは限りません。送信される引数が少ない場合、割り当てられていない入力変数はになりundefined
ます。
function newFunction(data, status){
}
newFunction(1);
このシナリオでdata
は、の値1
が割り当てられ、スコープのstatus
値が割り当てられます。undefined
newFunction
引数オブジェクト
のスコープ内には、 。newFunction
と呼ばれるオブジェクトのような配列へのアクセスもありますarguments
。
function newFunction(data, status)
{
var args = arguments;
}
newFunction(1);
このシナリオでは、変数はオブジェクトargs
を保持しarguments
ます。そこでargs.length
、1つの引数のみが送信されたことを確認できます。args[0]
この場合は、その引数値が得られます1
。
関数オブジェクト
new
キーワードを使用して関数をオブジェクトにすることができます。new
関数でキーワードを使用することにより、Functionオブジェクトが作成されます。Functionオブジェクトが作成this
されると、グローバルウィンドウの代わりに現在のFunctionオブジェクトを参照するために使用できます。
function newFunction(data,status){
if( this instanceof newFunction ){
//use as a Function object
this.data = data;
}else{
//use as a normal function
}
}
var myNewFunction = new newFunction(1);
このシナリオでmyNewFunction
は、はFunctionオブジェクトへの参照を保持し、ドット表記またはインデックス付けを介してオブジェクトとしてアクセスできます。myNewFunction["data"]
そしてmyNewFunction.data
今、両方とも1の値を保持しています。
これは、関数がとパラメーターの両方を受け入れることを意味します。関数(引数とも呼ばれます)を呼び出すときにパラメーターを提供するには、関数を呼び出すプログラマー(あなた)が必要です。data
status
簡単な例を見てみましょう。
function add(x, y) {
return x + y;
}
ここでの関数は、2つの数値を受け取り、それらを足し合わせて、結果を返します。これで、プログラマーとして、機能を複製したり、アプリケーションで同じ機能を実行する必要があるときにコピー/貼り付けしたりすることなく、いつでも2つの数値を追加できるという利点があります。
何よりも、一緒に作業している別のプログラマーは、方法を気にせずに2つの数値を足し合わせることができ、関数を呼び出すことができます。
編集:関数の呼び出しは次のように機能します
var num1 = 10;
var num2 = 15;
var z = add(num1, num2); //z = 25
function newFunction(data, status){ ... function code ... }
これは、newFunctionと呼ばれる関数のJavascript定義です。関数に引数を渡すことができます。これらは、関数が何かを実行することになっている、数値または文字列の変数です。もちろん、関数の動作/出力は、指定した引数によって異なります。