テストの優れた機能を共有するためのJSウェブプログラマー、で JS、一般的には、実際には、特定の操作をパッケージ化する機能を使用するか、またはモジュラー操作で書かれたプログラムに。
。宣言機能
1.通常の関数宣言
関数ボックス(NUM1、NUM2){
NUM1 + NUM2を返します。
}
2.変数の初期化関数を使用します
VARボックス=関数(NUM1、NUM2){
NUM1 + NUM2を返します。
}。
3. Functionコンストラクタ
VARボックス=新しい機能( 'NUM1'、 'NUM2'、 'リターンNUM1 + NUM2');
二つの値の関数として、
それ自体のECMAScript関数名は変数であり、関数も値として使用することができます。換言すれば、同じようなパラメータは、別の関数に関数を渡す渡すことができるだけでなく、および機能は、他の関数の結果として返すことができます。
関数ボックス(sumFunction、NUM){
sumFunction(NUM)を返します。
}
Iは{(NUM)の機能します
NUM + 10を返します。
}
VaRの結果=ボックス(合計10)。
三。内部プロパティを機能
:関数の内部で、二つの特別なオブジェクトがある引数は、これが。引数は、配列オブジェクトのクラスである関数に渡されるすべてのパラメータが含まれています。主な目的は、引数を機能させます。しかし、このオブジェクトは、argumentsオブジェクト持つ関数へのポインタで呼び出し先のプロパティを、命名します。
関数ボックス(NUM){
IF(NUM <= 1){
1を返します。
}他{
*リターンボックス(NUM-1)かどうか;
}
}
階乗関数の場合は、再帰的なアルゴリズムを使用することが一般的であるので、内部関数が自分自身を呼び出します。関数名が変更されない場合、問題はありませんが、一度一つ一つを修正するための内部の必要性自体を呼び出し、関数名を変更しました。この問題を解決するために、我々は代わりにarguments.calleeを使用することができます。
関数ボックス(NUM){
IF(NUM <= 1){
1を返します。
}他{
num戻り* arguments.calleeを(numは-1);
}
}
別の特別なオブジェクトは、内部関数ですこれ、これと同様のでJavaのC#の振る舞い。換言すれば、これは、範囲が配置されていることを操作、または関数呼び出し文を実行する目的に応じて、機能を指します。PS:あなたがグローバルスコープで関数を呼び出すと、これはオブジェクト参照ウィンドウです。
window.color =「赤」。
警告(this.color)。
各ボックス= {
色:「青」、
sayColor:関数(){
警告(this.color)。
}
}。
box.sayColor();
警告(this.color)。
四の関数プロパティとメソッド
ECMAScriptのオブジェクトの関数であり、従って、機能、属性およびメソッドを有します。長さやプロトタイプ:各関数は、2つのプロパティが含まれています。ここで、lengthプロパティは、パラメータが受信された名前の所望の機能の数を表します。
関数ボックス(名前、年齢){
警告(名前+年齢)。
}
警告(box.length)。
関数ボックス(NUM1、NUM2){
NUM1 + NUM2を返します。
}
関数sayBox(NUM1、NUM2){
box.apply返す(この、[NUM1、NUM2])。}
関数sayBox2(NUM1、NUM2){
box.apply(この、引数)を返します。
}
警告(sayBox(10,10));
警告(sayBox2(10,10));
同様に()メソッドの呼び出しは、()適用、それらは方法でのみ受信されたパラメータを異なります。()メソッドの呼び出しのために、最初のパラメータが範囲、変化なし、変化のみ残りのパラメータを関数に直接渡されているです。
関数ボックス(NUM1、NUM2){
NUM1 + NUM2を返します。
}
関数callBox(NUM1、NUM2){
box.call(これ、NUM1、NUM2)を返します。
}
警告(callBox(10,10));
VARの色=「赤」。
各ボックス= {
色:「青」
}。
機能sayColor(){
警告(this.color)。
}
sayColor();
sayColor.call(この);
sayColor.call(ウィンドウ)。
sayColor.call(箱)。
私たちが使用している場合(ボックス)メソッドを呼び出すための時間を、ランタイム環境sayColor()メソッドは、ボックスオブジェクトとなっています。
使用(コール)または(適用)最大の利点の範囲を拡大するために、オブジェクトがどの結合関係を必要とせず、結合方法が起こることを、意味は連鎖反応が起こります拡大し、維持、相互されています。