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

这句代码为什么不能执行?

这句代码为什么不能执行?

慕的地6264312 2018-08-13 10:10:23
function b(f) {   function c(f(3)) { return i * 2; };   return c;}function a(i) { return i + 4; }var d = b(a);d();     //14这是在网上看到的一段,editplus提示第四行有错。为什么是错的?a()作为参数传递给b(),为什么f(3)中的3会传递给a()呢?谢谢
查看完整描述

1 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

错误出在第二行,在b中定义一个内部函数c的定义不能这么定义,函数定义时,参数不能是个定值,应当是一个变量,但是f(3)是一个值,并不是变量。看题主这意思像是要返回一个以f(3)为参数的函数对象c吧。

function b(f){    function c(x){        return x*2;
    }    return c.bind(undefined,f(3));    
}
d()//14


查看完整回答
反对 回复 2018-09-26
  • 1 回答
  • 0 关注
  • 505 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信