从setTimeout,onclick传参看js函数作为参数
setTimeout传参
我们最先想到是这样:
setTimeout(doSomething1(123),1000);function doSomething1(content){console.log(content);
}
但是这样写,123
立马打印出来,并没有等待1s。这是因为,这样写会直接调用doSomething1(123)
,然后将其返回的结果作为第一个参数运行setTimeout
,分解开就是:
var temp = doSomething1(123);
setTimeout(temp,1000);
所以,既然temp是返回值,如果temp是一个函数那就达到我们的目的了,可以这样写:
ssetTimeout(doSomething1(123),1000);//这样就可以了
function doSomething2(content){return function(){console.log(content);}
}
onclick传参
和上面道理一样,也是不能直接传参:
var box = document.getElementById("box");
box.addEventListener("click",doSomething1("123"))function doSomething1(content){console.log(content);}
修改如下就可以:
var box = document.getElementById("box");
box.addEventListener("click",doSomething2("123"))function doSomething2(content){return function(){console.log(content);}}
这样我们也理解了,为什么box.addEventListener("click",onClick())
也不行,而只能是box.addEventListener("click",onClick)
了。
然而,修改之后虽然可以传参了,但是返回的是一个匿名函数,也就是说,这个事件监听没有办法取消。所以,还是不要用传参比较好,可以使用全局变量。
总之,函数作为另一个函数的参数时,就要小心:是传入函数对象,而不是函数调用后的结果
从setTimeout,onclick传参看js函数作为参数相关推荐
- 动态html函数的写法,如何将html div id的动态传递给js函数
我想将div id从html动态传递给js脚本 因为div id r1,r2,r3需要传入jS中的getElementById(),所以当用户鼠标放在任何div上,它会自动旋转.如何将html div ...
- JS函数的参数(arguments)的使用
JS函数的参数在function内可以用arguments对象来获取. 参数的调用有两种方式: 1.期望参数的使用. 2.实际传递参数的使用. 应用举例: function Test(a, b){ v ...
- js函数中参数的传递
先看一道JS的笔试题: var setObj=function(o){o.name="xiaoming";o={};o.name="xiaohong"; } v ...
- js函数 argements参数
demo: function argTest(a,b,c,d){ var numargs = arguments.length; // 获取被传递参数的数值. var expargs = argTes ...
- js函数 传参 解密
js 中的函数我们用了太多太多次了,但是关于函数的参数今天还是要说道说道. 1.js函数的参数分为两种,一种是显示参数,一种为隐式参数. 显示参数:在函数定义时列出 隐式参数:在函数调用时传递的参数值 ...
- HTML调用Java函数或语句,在动态THML语句中调用JS函数传递带空格参数的问题
刚刚遇到一个问题,调用js函数的参数里带空格,造成调用失败的问题. 部分代码如下: html+=" "; //name中如果有空格就是调用失败 html+=" " ...
- idea中js函数中使用EL表达式报错expression expected以及参数underfined的问题.md
EL表达式显示错误expression expected问题: 这段代码在MyEclipse中没有问题,因为idea的严格代码检查,这里会显示expression expected的错误,原因是因 ...
- 前端:JS/22/函数(函数的概念,函数的定义格式,函数定义格式的说明,函数的调用,函数的参数),全局变量和局部变量,拷贝传值和引用传址,匿名函数,二维数组,对象,自定义对象的创建
函数 1,函数的概念 函数,是将一段公共的代码进行封装,给它起个名字叫"函数" 函数可以一次定义,多次调用:函数可以将常用的功能代码,进行封装,如:用户名的验证,验证码函数,邮箱验 ...
- 礼拜五log~js函数setTimeout
js函数setTimeout的用法 var tmpContent = "";setTimeout(function(){ // 回调函数tmpContent = $(". ...
最新文章
- 《信息安全技术健康医疗数据安全指南》国家标准
- ReSIProcate源码目录下功能说明
- util.promisify 的那些事儿
- plsq如何快捷整理代码_PLSQL Developer使用技巧整理(转)
- python绘制笑脸-用python绘图
- ViewPager的事件冲突的解决
- 格局打开,带你解锁 prompt 的花式用法
- [Leetcode]-- Valid Number
- 力扣441.排列硬币
- ubuntu 卸载opencv
- UART通讯协议(四)数据接收帧间隔
- 八、Oracle学习笔记:日期函数
- php 汽车品牌三级联动,车辆品牌型号的三级联动菜单怎么做的
- 【算法题】求有序数列中相邻数字之间的最大差值
- Windows 10系统时间显示不正确
- 大数据基础——Hadoop大数据平台搭建
- Hi-C数据可视化-组装角度
- 动易html在线编辑器 漏洞,动易NewComment.asp注入漏洞
- TeamViewer远程工具使用安装方法图解
- 基于python语言,使用爬虫和深度学习来预测双色球(二、模型训练与测试)