Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptでの関数の巻き上げ


巻き上げは、コードの実行を開始する前に、変数と関数の宣言をスコープの最上位に移動するJavaScriptの手法です。スコープ内では、関数または変数が宣言されている場所に関係なく、それらはスコープの最上位に移動されます。

巻き上げると、割り当てが残っている間だけ宣言が移動することに注意してください。

console.log(functionBelow("Hello"));
function functionBelow(greet) {
   return `${greet} world`;
}
console.log(functionBelow("Hi"));

出力

Hello world
Hi world

関数宣言は呼び出された後ですが、まだ呼び出されていることに注意してください。これは、機能の巻き上げにより可能になりました。

また、変数などの関数を割り当てる場合は機能しないことに注意してください。

console.log(functionBelow("Hello"));
var functionBelow = function(greet) {
   return `${greet} world`;
}
console.log(functionBelow("Hi"));

これはエラーで失敗します:functionBelowは関数ではありません

varを削除すると、次のエラーで失敗します:functionBelowが定義されていません

varで宣言された場合、コンテキスト内で変数として持ち上げられたことに注意してください。しかし、それはまだ未定義のままでした。これは可変巻き上げとして知られています。このプロパティにより、匿名関数と矢印関数がJavaScriptで引き上げられることはありません。


  1. JavaScriptの関数プロトタイプ

    JavaScriptで作成された関数には、JavaScriptエンジンによって追加されたプロトタイププロパティが常にあります。プロトタイププロパティは、デフォルトでコンストラクタプロパティを含むオブジェクトです。関数protoypeには、-からアクセスできます。 functionName.prototype オブジェクトが関数コンストラクターを使用して作成されている場合、このプロトタイププロパティを使用して、その関数コンストラクターによって作成されたオブジェクト間でメソッドまたはプロパティを共有できます。 以下は、JavaScriptの関数プロトタイプのコードです- 例 <!DOCT

  2. JavaScriptでの関数の借用。

    call()、apply()、bind()は、JavaScriptのメソッドを借用するために使用されます。 以下は、JavaScriptでメソッドを借用するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> &