从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)了。

然而,修改之后虽然可以传参了,但是返回的是一个匿名函数,也就是说,这个事件监听没有办法取消。所以,还是不要用传参比较好,可以使用全局变量。


总之,函数作为另一个函数的参数时,就要小心:是传入函数对象,而不是函数调用后的结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux上的那些查找的命令

由于工作的需要,少不得要在linux系统上查找各种各样的文件,关于在linux查找的命令有不少,这里小小的总结下。 简单介绍下各个命令的用途: find:实际搜索硬盘查询文件名称;whereis:查看文件的位置…

sprintf函数_三分钟学 Go 语言——函数深度解析(下) 可变参数

接连两篇函数专题深度解析,相信大家已经对函数的语法有了深入的了解。函数简单使用和基本知识解析匿名函数和闭包五一放假期间,我懂得,估计你们都不想学习。小熊这两天因为个人种种令人难受的原因,没有能更新,也没有提…

手工画设计模式的类图

画图成果 面试常考设计模式,往往需要动手画类图。之前面试的时候碰到画类图,往往直奔主题,立即开始画,往往画得很乱。其实面试是一个过程,看中的是思考分析解决问题的过程,结果反而不那么重要。画设计模式…

Reason: image not found

刚生的Xcode8,出现好多Error,有些Error真的太麻烦不想记录,现在这个挺简单的,就记下来,控制台输出的Error信息如下: fix: Target -> Build Phases ->Link Binary With Libraries&#xff…

go爬虫和python爬虫哪个好_python 爬虫实战项目--爬取京东商品信息(价格、优惠、排名、好评率等)-Go语言中文社区...

利用splash爬取京东商品信息一、环境window7python3.5pycharmscrapyscrapy-splashMySQL二、简介为了体验scrapy-splash 的动态网页渲染效果,特地编写了利用splash爬取京东商品信息的爬虫,当然站在爬取效率和稳定性方面来说,动态网页爬取首先应…

jquery事件绑定解绑机制源码分析

引子 为什么Jquery能实现不传回调函数也能解绑事件?如下: $("p").on("click",function(){alert("The paragraph was clicked."); });$("#box1").off("click"); 事件绑定解绑机制 调用on函数的时候…

微信小程序导航:免费视频+精品教程+DEMO集合(长期更新)

1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t14764346784612:简易教程:https://mp.weixin.qq.com/debug/wxadoc/dev/?t14764346775993:设计指南:https://mp.weixin.qq.com/debug/wxadoc/desig…

怎么查看usb读取信息_电脑弹出USB设备时提示该设备正在使用中的解决方法

转载的文章,原文:电脑弹出USB设备时提示该设备正在使用中的解决方法-系统城​www.xitongcheng.com电脑弹出USB设备时提示该设备正在使用,虽然在正常显示时并没有程序在使用,但是确实会出现这种情况,实际上确…

js菜单自适应的实现

功能示意图 菜单自适应示意图如下: 对象A可以拖动,缩放。菜单跟随对象A拖动,位置优先级为下面、上面、右边、左边、中间。 实现思路 其实菜单放在上下左右中,都是它的left和top在变,我们只要依次计算菜单在下/上/右…

python转换为c代码_bash 转换为C代码

bash 转换为C代码,并编译为可执行文件[rootlocalhost ~]# wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.9.tgz[rootlocalhost ~]# tar xvfz shc-3.8.9.tgz[rootlocalhost ~]# cd shc-3.8.9[rootlocalhost shc-3.8.9]# gcc -c shc.c[rootlocalhost shc-3.8.9]# gcc…

promise简析

promise可以解决多个回调函数嵌套问题,将嵌套所表示的流程通过同步的代码更加清晰的表达出来。 promise的用法与使用配置文件很类似:启动异步函数,在then里面配置好异步函数成功或执行失败的回调函数,然后就可以去干别的事了。 …

python cookies过期_Python3中关于cookie的创建与保存

1.cookie的作用cookie 是指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据,就像有些网站上的一些数据是需要登录后才能看得到,那么想抓取某个页面内容,就需要用到cookie来模拟登陆了。在用cookie模拟登陆的时候&…

GIS-004-Cesium版权信息隐藏

.cesium-widget-credits { display: none; } .cesium-viewer .cesium-widget-credits { display: none; }转载于:https://www.cnblogs.com/defineconst/p/5965531.html

webpaper网页出题语言

目的 方便编写web试题,直接使用几个简单的标签,就可以生成一份可以在web上使用,并且可以打印出来的题。 效果预览 考卷打印效果 生成考卷发送给学生,或打印出来线下考 答案卷打印效果: 通过点击”显示答案”生成答…

python教程很详细_Python编程入门教程:从入门到高级,非常详细

本文的资料和内容是我下载的,觉得非常有用,于是转过来大家瞧瞧:这里给初学Python的朋友提供一些建议和指导吧。大神请无视,俗话说:授人以鱼不如授人以渔。所以我这里只是阐述学习过程,并不会直接详细写某个…

NOIP复习资料——往年习题精选

一、计算机系统 1.在以下各项中,()不是CPU的组成部分。(NOIP2007) A.控制器B.运算器C.寄存器D.主板 【答案】D。CPU由控制器、运算器和寄存器组成。 2.在下列各项中…

【笔记】js重写

js重写,以localstorage为例: var originalSetItem localStorage.setItem; localStorage.setItem function(){// 这里做一些额外的事...//继续调用原来的方法originalSetItem.apply(this, arguments); } 代码引自:这里

(中英)作文 —— 标题与小标题

一个押韵的标题,会十分讨巧; 当世界年轻的时候, 当中国年轻的时候,当世界衰老的时候;1. 英文 A year of no significance. An animal of no significance.2. 名著的变形 双城记:A tale of Two cities Tales…

table 表格点击当前行按钮隐藏当前的另一个按钮_Excel表格为什么那么慢已经应该如何解决(四)一类特殊的函数易变函数(volatile function)...

我们,让Excel变简单今天我们把主题聚焦在一类特殊函数造成的问题上——volatile function。这一类函数有人把他们翻译成“易变函数”,其实挺贴切的。本系列其他文章:Excel表格为什么那么慢已经应该如何解决(一)概述Excel表格为什么那么慢已经…

h5 storage事件监听

分析 引用《h5移动web开发指南》上的话: “当同源页面的某个页面修改了localStorage,其余的同源页面只要注册了storage事件,就会触发” 所以,localStorage的例子运行需要如下条件: 同一浏览器打开了两个同源页面其中一个网页修…