闭包
什么是闭包?
闭包就是指有权访问另一个函数作用域中的变量的函数。
js
function foo (){
var name = 'snail'
return function(){
console.log('my name is '+name)
}
}
var bar = foo();
bar();面试题
ts
//请补全下面的 Javascript 代码中的 add 方法
function add(n) {
}
//todo
add(1)(2)() //3
add(1)(2)(3)(4)() //10
add(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(); /* 10 */
//答案
function add(n){
let res=n
//这个内部一个cb函数
function cb(args?){
//判断是否有参数
//如果没有就直接返回结果
//如果有就继续返回一个函数cb
if (args === undefined) {
return res
} else {
res += args
return cb
}
}
return cb
}
指南