var pow2 = make_pow(2);说明把参数n=2传进去了,可是为什么打印出来pow2时,参数n没有被赋值?
4 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
打印出来的是个函数,该函数是什么就打印什么,不会根据上下文的环境自动赋值,一个简单直观的例子:
let a = 3;
function fun(){
return a
}
// 打印出来肯定是 'func(){return a}'
// 即使我们知道a值是3,但是机器并不知道,要等到运行的时候,分析作用域,上下文,才知道要输出什么
console.log(fun)
呼啦一阵风
TA贡献1802条经验 获得超6个赞
你的make_pow返回的就是一个函数,在JS中,函数也是对象,所以可以作为返回值。你要得到正确结果得这样:
var pow2=make_pow(2);
console,log(pow2(3)); // 9
至于pow2为什么能够保存n的值,则是涉及到闭包问题了。
添加回答
举报
0/150
提交
取消
