代码理解问题

代码理解问题

<body>
	<input id="a">		
	<input id="b">	
	<script type="text/javascript" src="jquery-3.3.1.js"></script>
	<script type="text/javascript">
		function sum(e,a,b){
			console.log(e); //  运行显示event对象
			console.log(a);//   undefined
			console.log(a);//   undefined
		}
	$("#a").keypress(function(e,a,b){
console.log(e); //  运行显示event对象
console.log(a);//   undefined
console.log(a);//   undefined
	})
	$("#b").keypress(sum);
    </script>
</body>


如上代码,,2个文本框,分别设置 keyPress函数, 一个绑定 匿名函数  一个绑定带参函数

问题

     我知道 keyPress 会产生 event 对象, 但调用 keyPress函数 是怎么自动将 event对象 传入 我用作参数 的函数 的参数 里面去的??   即  event对象 如何强制自动传入到 上述代码 第一个形参e 中??   里面到底是怎么回事??

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,JQuery中的e是把javascript中的Event做了封装,实现多浏览器兼容。具体怎么传,底层如何实现的这里老师也不是很清楚,同学目前可以先记住。关于前端内容,同学不需要了解的很详细。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕阿慧 2020-07-28 10:55:11

同学你好,Event对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。所有事件都会生成一个jQuery的Event对象,如果function有参数,就会赋值给它。

生成Event对象是jQuery底层做的事情。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 py_builder #1
    我对 生成 event对象 很理解,没有任何问题。 但我的问题不是为什么或者怎么样生成 event对象, 我是在问 $("#b").keypress(sum); keypress生成的 event对象 是怎么传入到sum函数的参数中的??
    2020-07-28 11:24:31
py_builder 提问者 2020-07-28 08:20:24

我特别测试了倒数第三行代码   %1%  $("#b").keypress(sum)

若改为  %2%    $("#b").keypress(sum)())


通过观察控制台的输出, 好像明白了点,%1%传给keypress的是 sum的函数入口

然后 #b控件绑定了 keypress函数,每次运行keypress函数,它都会找到sum函数进行操作


假如传的是  sum()自然keypress函数得到的是sum的返回值,自然无法正常运行


自己理解加深了,但问题依旧,keypress到底是怎么将 event对象传入我自定义的sum函数的?


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师