猿问

js onclick 一定要匿名函数吗?

function click_alert() {
alert('123');
}
btn.onclick = click_alert;
这样做没问题 页面加载完也不会自动执行。
但是如果我要传递东西呢
function click_alert(z) {
alert(z);
}
btn.onclick = click_alert('a');
这样就自动执行了

慕沐林林
浏览 1587回答 2
2回答

紫衣仙女

onclick是注册一个点击事件,上面一段的代码表示当这个页面元素被点击的时候会触发一个alert事件。而下面那段的代码是说先执行一段包含alert的函数,然后再把函数的返回值null返回并绑定给onclick。上面一段代码是会将点击事件绑定给btn的,但是下面那段只会在页面加载到这段时运行一下这个函数正常情况下所绑定的函数会将当前传入当前发生的事件作为参数。即123456function click_alert(event) {     console.log(event);    console.log(arguments);    alert('123');}btn.onclick = click_alert;如果你想传参数可以动态生成函数可以使用1234567function get_click_alert(message) {     function click_alert() {         alert(message);    }    return click_alert}btn.onclick = get_click_alert('abc');

精慕HU

1234567function click_alert(obj) {    alert(obj);} btn.onclick = function() {    click_alert(obj);}
随时随地看视频慕课网APP

相关分类

Ruby
我要回答