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
添加回答
举报
0/150
提交
取消