初学js 个人觉得js的语法真的很混乱🤪,今天做了一个关于回调函数和作用域的小练习,但不知为何出错,目标输出应该是4、12
第一个问题,如果你的 f 的参数,想最为一个方法使用,你必须在2的位置返回一个方法
第二个问题,你的 f2 里,b 已经作为参数了,尽量不要将这个参数洗掉,从新使用其他变量名
下边是个正确的结果
<script>
function a(){
var a = 1;
function f(input){
var c = 3;
var b = input();
console.log(a + c)
console.log(a + b)
}
function k(){
return 5;
}
function v(){
return 6;
}
function f2(a,b){
var c = function(){return a() + b()
}
return c
}
f(f2(k,v))
}
a()
</script>
var b=input();
改为
var b=input;
为你修改的代码如下
1.删除了input()后的括号;(因f2方法 return b;b并不是一个funcion,故input也不是function);
2.f2方法中 var b = a() + b();加上了括号;(因想要得到k、v方法的返回值需要调用方法,所以需要加上括号);
var b = 2;
function a() {
var a = 1;
function f(input) {
var c = 3
var b = input;
console.log(a + c);
console.log(a + b);
}
function k() {
return 5;
}
function v() {
return 6;
}
function f2(a, b) {
a();
b();
var b = a() + b();
return b;
}
f(f2(k, v));
}
a();
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!