js中带有参数的函数作为值传入后调用问题

Author:闫玉良

每天不是在写 bug,就是在解 bug 的路上~

更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

1.无参数函数作为参数传入调用

当根据实际情况,函数需要作为参数传入时,一般采用如下方式直接调用即可:

1
2
3
4
5
6
7
function fuc1() {
console.log(1);
}
function fuc2(a) {
a();
}
fuc2(fuc1); // 1

2.有参数函数作为参数传入调用

一般的函数都有参数,那么这种情况又如何传参呢?可以使用如下方式:

1
2
3
4
5
6
7
function fuc1(param) {
console.log(param);
}
function fuc2(a, b) {
a(b);
}
fuc2(fuc1, "欢迎关注微信公众号:全栈技术精选");

3.有参数函数作为事件方法

现在要将传入的函数作为点击事件的处理程序,你一定想得是这样:

1
2
3
4
5
function fuc1(param) {
alert(param);
}
var link = document.getElementsByClassName("link1");
link.onclick = fuc1("我是小闫同学啊");

但是不好意思,不需要点击,一刷新页面,直接调用函数,弹出窗口!

因为在你写 fuc1(“我是小闫同学啊”) 时,默认就调用了此函数,都不需要点击。

如何才能达到在点击时才弹出窗口呢?你需要这样做:

1
2
3
4
5
6
7
8
9
//请关注:全栈技术精选
function fuc1(param) {
alert(param);
}
var link = document.getElementById("link1");
link.onclick = function() {
fuc1("我是小闫同学啊");
return false;
};

更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • 页面访问量: 独立访客访问数:
  • 更多精彩文章请关注微信公众号『全栈技术精选』,id 为『Pythonnote』

请我喝杯咖啡吧~

支付宝
微信