闭包
今天面试需要手写一段代码实现
有一个function f,
实现f(2)(4)(6)(8)();
输出计算结果
首先想到的要是闭包来实现
var a = sum();
let f = ()=>{
let args = [];
let a = 1;
return function(){
if(arguments.length){
args = args.concat([].slice.call(arguments));
console.log(args);
return arguments.callee
}else{
args.forEach(item => {
a = a* item;
})
}
}
}
首先看到这个题,我先想到是考察闭包的使用,暂存计算过程中的数据,随时可以打印结果。
console.log(f(2)(4)(6)(8)())
打印结果显示为384;