JS参数使用带参数的方法
2024-08-25 12:51:11
大家都知道,在JS之中,一个变量的生命周期不是以大括号为界限的,所以即使是使用在循环或判断中的变量,外部也可以使用。可如果我们在循环或变量中使用了方法,而且这个方法使用了循环中的变量,那么后面的代码是可以修改这个变量的值的,而不是,将值的内容完全写死在了循环里面的方法中。那么解决这个问题的一种方法就是,将方法写出来,接收一个参数就可以了。
可是,在JS中传递的参数如果是方法,那么后面不能加上小括号,如果加上的话,就认为是调用了这个方法,会立即执行,这样一来,就更别说是传递参数了,那么如果解决这个问题呢?
错误的代码:
window.onload = function() {
function fun(x) {
alert(x);
}
$("#btn").click(fun(5));
}
其实啊,如果你以前是这样写的,那么就说你对这个原理还不清楚!
click()方法接收的是一个参数,就像JAVA一个,你完全可以写一个方法进去,然后click()得到的参数就是这个方法的返回值。所以,如果想要传递一个方法进去,只需要在你调用的方法那里加上一个return function(){}就可以了,当然这个方法也是可以带参数的。这样一来,这个方法就会返回一个方法。你只需要将你想要的代码写在return的方法里面就可以了。
正确的代码:
$(document).ready(function() {
function method(a) {
return function() {
fun(a);
}
}
function fun(num) {
alert(num);
}
function() {
$("btn").click(method(x));
}
});
最新文章
- #define与typedef在重定义类型中的区别
- 2016福州大学软件工程 团队Git Review
- Visual C++ 的代码折叠
- Mac 使用 SSH 免密连接服务器
- 一起买beta版UI测试
- 【初识 JQMobile 小小总结】
- 百度地图API说明
- 创建Car类,实例化并调用Car类计算运输的原料量是否足够
- poj 3662(经典最短路)
- JQuery获取浏览器窗口的高度和宽度
- js 注册手机摇动事件
- jsp中的contentType与pageEncoding的区别和作用
- 比较好的前端方法库及一些vue如何引入静态文件
- 深度理解 Virtual DOM
- for循环 重点题
- Project 10:简单图像的绘制
- Win7添加php环境变量.
- Sql Server2014数据库清理日志
- DataGrid 查不出数据 注意事项
- 掌握Docker命令-Docker for Web Developers(4)