JS参数使用带参数的方法

       大家都知道,在JS之中,一个变量的生命周期不是以大括号为界限的,所以即使是使用在循环或判断中的变量,外部也可以使用。可如果我们在循环或变量中使用了方法,而且这个方法使用了循环中的变量,那么后面的代码是可以修改这个变量的值的,而不是,将值的内容完全写死在了循环里面的方法中。那么解决这个问题的一种方法就是,将方法写出来,接收一个参数就可以了。

        可是,在JS中传递的参数如果是方法,那么后面不能加上小括号,如果加上的话,就认为是调用了这个方法,会立即执行,这样一来,就更别说是传递参数了,那么如果解决这个问题呢?

错误的代码:

1window.onload =function() {2functionfun(x) {3alert(x);4}5$("#btn").click(fun(5));6}

其实啊,如果你以前是这样写的,那么就说你对这个原理还不清楚!

click()方法接收的是一个参数,就像JAVA一个,你完全可以写一个方法进去,然后click()得到的参数就是这个方法的返回值。所以,如果想要传递一个方法进去,只需要在你调用的方法那里加上一个return function(){}就可以了,当然这个方法也是可以带参数的。这样一来,这个方法就会返回一个方法。你只需要将你想要的代码写在return的方法里面就可以了。

正确的代码:

1$(document).ready(function() {2functionmethod(a) {3returnfunction() {4fun(a);5}6}7functionfun(num) {8alert(num);9}10function() {11$("btn").click(method(x));12}13});

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,687评论 18 399
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,246评论 0 38
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock阅读 3,486评论 2 36
  • 20171018工作室煮火锅 大学的工作室是一个功能齐全的屋子,很多都有洗衣、做饭,甚至睡觉的功能。霓虹国更是如此...
    采月光的人阅读 249评论 0 0
  • 德这个字意义广泛,字典中对“德”的解释丰富多彩。“德”不仅有着丰富的意义,还始终贯穿于我们生活中。一个人若...
    何嘎嘎阅读 664评论 13 9

友情链接更多精彩内容