javascriptvarx=0;varfoo=function(callback){returnwindow.setTimeout(callback,17);}(functionsayX(){x+=1;console.log(x);foo(sayX);}())报错信息:UncaughtTypeError:fooisnotafunction测试环境:chrome44.0.2403.130mPS:最好能深入的说明一下原因。
2 回答
梦里花落0921
TA贡献1772条经验 获得超6个赞
不是特别清楚你的意图,你是想这样:varx=0;varfoo=function(callback){returnwindow.setTimeout(callback,17);};//此处加分号(functionsayX(){x+=1;console.log(x);foo(sayX);}())还是这样:varx=0;functionfoo(callback){returnwindow.setTimeout(callback,17);}(functionsayX(){x+=1;console.log(x);foo(sayX);}())}后跟(就直接被调用了。你那样写是在给foo赋一个匿名函数的执行结果,不是在定义函数。把你那段代码拆开就变成:varx=0;varfoo;functionanonymous(callback){returnwindow.setTimeout(callback,17);};foo=anonymous(functionsayX(){x+=1;console.log(x);foo(sayX);}());当然会出错
白猪掌柜的
TA贡献1893条经验 获得超10个赞
改成这个就可以了varx=0;functionfoo(callback){returnwindow.setTimeout(callback,17);}(functionsayX(){x+=1;console.log(x);foo(sayX);}())
添加回答
举报
0/150
提交
取消