JS でのクロージャー
4286 ワード
クロージャーとは?
クロージャに入る前に、レキシカルスコープについて少し議論しましょう.
レキシカル スコープ:- レキシカル スコープは、関数スコープが親スコープから変数にアクセスする機能です.どの親? (最も近い親).
これで、レキシカル スコープの基本を理解できたと思います.
では閉鎖とは?
関数とそのレキシカル スコープがクロージャを形成していました.
その文だけに従って、コードを書きます.よりよく理解できるように.
以下のコードは、少し変更を加えた上記のコードと同じです (logixal スコープ コード)
したがって、z() を呼び出すと、z には y function.so が含まれます.期待される出力は何ですか??
はい、出力は1です.zでは、関数だけが保存されるわけではありません.機能とともに.そのレキシカル スコープも明らかになります.
では、閉鎖とは何ですか?
関数とそのレキシカル スコープはクロージャを形成します. (文は終了しました).
以上です、読んでくれてありがとう!
乾杯!
レキシカル スコープ:- レキシカル スコープは、関数スコープが親スコープから変数にアクセスする機能です.どの親? (最も近い親).
function x() {
var a = 1;
function y() {
var a=2;
console.log(a) //2
}
y();
}
x();
function x() {
var a = 1;
function y() {
console.log(a) //1
}
y();
}
x();
これで、レキシカル スコープの基本を理解できたと思います.
では閉鎖とは?
その文だけに従って、コードを書きます.よりよく理解できるように.
以下のコードは、少し変更を加えた上記のコードと同じです (logixal スコープ コード)
function x() { //closure start
var a = 1;
function y() {
console.log(a)
}
return y;
} // closure end
let z = x(); // it will contain y function
したがって、z() を呼び出すと、z には y function.so が含まれます.期待される出力は何ですか??
function x() { //closure start
var a = 1;
function y() {
console.log(a)
}
return y;
} // closure end
let z = x(); // it will contain y function
z() //1
はい、出力は1です.zでは、関数だけが保存されるわけではありません.機能とともに.そのレキシカル スコープも明らかになります.
では、閉鎖とは何ですか?
関数とそのレキシカル スコープはクロージャを形成します. (文は終了しました).
以上です、読んでくれてありがとう!
乾杯!
Reference
この問題について(JS でのクロージャー), 我々は、より多くの情報をここで見つけました https://dev.to/umashankar_s/closures-in-js-1m0bテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol