JS中的回调函数以及传参

js函数的传参中,参数可以为函数如下图所示


输出结果:弹出窗口‘码砖小丸子--测试参数3’;

为了增加代码的可扩展性,则进行一下修改,将function2中的alert输出的内容改为参数,如下图所示


输出结果:弹出窗口 ‘码砖小丸子--测试参数3’;

同时也可以在调用function1的时候就定义好要传入function2中的参数,如下图所示


输出结果:弹出窗口 ‘码砖小丸子--测试参数2’;

同时对于传入function1中的function2来分析,在调用的时候function2不能携带括号


根据js的编译机制,如果采用以上的方式来编写调用代码,也没有错误,但会出现在调用function1的时候直接执行了function2,并将function2的返回值作为传入function1的一个参数。


输出结果:弹出窗口 “码砖小丸子--测试参数4”并且报错,function2 is not a function

因此就衍生出了js中的回调函数的运用。在jquery中,bind方法更是对传参做了扩展如下图代码

bind中的第二个参数为可选参数,若选择后,其传入的值则会存在回调函数中的event中的data中,如上图方式采用回调函数function(event){console.log(event);}就可以在控制台看到想要的结果。

同时也就可以扩展出,当我们在执行回调函数的时候,我们也可以在执行function1的过程中,将传入的参数,存到event中,让其传到function2中进行执行。但此种情况需考虑执行function1的时候,此时的this中是否存在着event对象,只有当有触发事件是才会有event对象,包括window的加载完成即window.onload();

猜你喜欢

转载自blog.csdn.net/cxk_mz/article/details/79061403
今日推荐