JavaScript関數(shù)定義
JavaScript関數(shù)定義
JavaScriptはキーワード関數(shù)を使用して関數(shù)を定義します。
関數(shù)は宣言によって定義することも、式として定義することもできます。
関數(shù)宣言
前のチュートリアルで、関數(shù)宣言の構(gòu)文はすでに理解しました:
function functionName(parameters) {
実行されたコード
}
関數(shù)は宣言直後に実行されるのではなく、実行されます。必要なときは電話してください。
関數(shù)式
JavaScript 関數(shù)は式によって定義できます。
関數(shù)式は変數(shù)に格納できます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p>函數(shù)可以存儲在變量中:</p> <p id="demo"></p> <script> var x = function (a, b) {return a * b}; document.getElementById("demo").innerHTML = x; </script> </body> </html>
関數(shù)式を変數(shù)に格納した後、その変數(shù)は関數(shù)としても使用できます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p>函數(shù)存儲在變量后,變量可作為函數(shù)使用:</p> <p id="demo"></p> <script> var x = function (a, b) {return a * b}; document.getElementById("demo").innerHTML = x(4, 3); </script> </body> </html>
上記の関數(shù)は実際には匿名関數(shù)です(関數(shù)には名前がありません) )。
関數(shù)は変數(shù)に格納され、通常は変數(shù)名を通じて呼び出されます。
上記の関數(shù)は実行文なのでセミコロンで終わります。
Function() コンストラクター
上の例では、関數(shù)がキーワード function を通じて定義されていることを?qū)Wびました。
関數(shù)は、組み込みの JavaScript 関數(shù)コンストラクター (Function()) を通じて定義することもできます。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p>JavaScrip 內(nèi)置構(gòu)造函數(shù)。</p> <p id="demo"></p> <script> var myFunction = new Function("a", "b", "return a * b"); document.getElementById("demo").innerHTML = myFunction(4, 3); </script> </body> </html>
関數(shù)ホイスティング(巻き上げ)
「ホイスティング(巻き上げ)」については、前回のチュートリアルですでに學習しました。
ホイスティングは、現(xiàn)在のスコープを前面にホイストする JavaScript のデフォルトの動作です。
ホイスティングは変數(shù)宣言と関數(shù)宣言に適用されます。
したがって、関數(shù)は宣言される前に呼び出すことができます:
myFunction(5); function myFunction(y) { return y * y; }
式を使用して関數(shù)を定義する場合、リフティングはできません。
自己呼び出し関數(shù)
関數(shù)式は「自己呼び出し」できます。
自己呼び出し式は自動的に呼び出されます。
式の後に()が続くと自動的に呼び出されます。
宣言された関數(shù)を自分で呼び出すことはできません。
関數(shù)はオブジェクトです
JavaScriptでtypeof演算子を使用して関數(shù)の型を決定すると、「function」が返されます。
しかし、JavaScript 関數(shù)はオブジェクトとしてより正確に記述されます。
JavaScript 関數(shù)にはプロパティとメソッドがあります。
arguments.length プロパティは、関數(shù)呼び出し中に受け取ったパラメーターの數(shù)を返します。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <p> arguments.length 屬性返回函數(shù)接收到參數(shù)的個數(shù):</p> <p id="demo"></p> <script> function myFunction(a, b) { return arguments.length; } document.getElementById("demo").innerHTML = myFunction(4, 3); </script> </body> </html>
この関數(shù)は、オブジェクト メソッドと呼ばれるオブジェクトの屬性として定義されます。
関數(shù)が新しいオブジェクトの作成に使用される場合、その関數(shù)はオブジェクトのコンストラクターと呼ばれます。