为了账号安全,请及时绑定邮箱和手机立即绑定

求大佬帮解答 js这个参数传递的问题

求大佬帮解答 js这个参数传递的问题

江户川乱折腾 2019-03-13 10:15:15
var pow2 = make_pow(2);说明把参数n=2传进去了,可是为什么打印出来pow2时,参数n没有被赋值?
查看完整描述

4 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

var pow2=make_pow(2);//pow2是个function

//如果调用,则应该这样:

pow2();


查看完整回答
反对 回复 2019-04-03
?
呼唤远方

TA贡献1856条经验 获得超11个赞

我的理解:console.log是打印出引用的字符串形式,而且没有运行pow2,参数此时是形参。而你想要的赋值是指运行时发生的。


查看完整回答
反对 回复 2019-04-03
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

打印出来的是个函数,该函数是什么就打印什么,不会根据上下文的环境自动赋值,一个简单直观的例子:


let a = 3;

function fun(){

    return a

}

// 打印出来肯定是 'func(){return a}'

// 即使我们知道a值是3,但是机器并不知道,要等到运行的时候,分析作用域,上下文,才知道要输出什么

console.log(fun)


查看完整回答
反对 回复 2019-04-03
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

你的make_pow返回的就是一个函数,在JS中,函数也是对象,所以可以作为返回值。你要得到正确结果得这样:


var pow2=make_pow(2);

console,log(pow2(3)); // 9

至于pow2为什么能够保存n的值,则是涉及到闭包问题了。


查看完整回答
反对 回复 2019-04-03
  • 4 回答
  • 0 关注
  • 523 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号