1、函数的环境与作用域原理
let title = '工作' //在整个js作用 现在作为全局变量 如果在函数里面 作用域只在函数里
function show() {
let url = '工作中';
function hd() {
let site = '加班中';
console.log(url) //hd函数里调用父级的url 可以调用
}
}
show() //调用函数执行局部作用let 如果调用子函数的 site值的话访问不到
2、模拟块级作用域
function outputNumbers(count){
(function(){
for(var i = 0; i < count; ++i){
console.log(i);
}
})();
console.log(i); // Uncaught ReferenceError: i is not defined
}
outputNumbers(5);
3、什么是闭包 闭包就是一个函数可以访问另一个函数的的值
function hd(){
let n = 1;
return function sum() {
//sum函数可以使用其他函数的参数
console.log(++n,'++n')
}
}
let a = hd();
a();
a();