新手头疼问题:对于闭包和作用域的理解。
闭包是作用域应用的特殊场景。 js中常见的作用域包括全局作用域、函数作用域、块级作用域。要知道js中自由变量的查找是在函数定义的地方,向上级作用域查找,不是在执行的地方。 常见的闭包使用有两种场景:一种是函数作为参数被传递;一种是函数作为返回值被返回。
// 函数作为返回值
function create() {
let a = 100;
return function () {
console.log(a);
};
}
const fn = create();
const a = 200;
fn(); // 100
// 函数作为参数被传递
function print(fb) {
const b = 200;
fb();
}
const b = 100;
function fb() {
console.log(b);
}
print(fb); // 100 

网友回答文明上网理性发言 已有0人参与
发表评论: