为了账号安全,请及时绑定邮箱和手机立即绑定

js函数中的调用

js函数中的调用

qq_天蝎的尾巴卍_0 2017-03-16 22:25:50
 window.onload = function () { var btnObj = document.getElementById("btn"); btnObj.onclick = function () { alert("123"); } } function chg() { alert("124") }<input type="button" id="btn" value="点击按钮"  onclick="chg()"/>  chg()函数为什么必须写在onload外面?匿名函数 为啥能写在里面使用?
查看完整描述

3 回答

?
千秋此意

TA贡献158条经验 获得超187个赞


<input type="button" id="btn" value="点击按钮"  onclick="chg()"/> 
这里的 onclick="chg()"; 叫做事件属性,效果是点击后执行一段js代码,你这里是直接调用函数chg,不过你把函数chg声明在window.onload = function(){}; 这个局部作用域内,全局(当前)作用域内找不到,所以这时候会报一个chg not defined的错误。你非要将函数写在onload内也不是不行,可以这样: chg = function() { // some code }; 或者 window.chg = function() { // some code };不过没啥意义就是了。

btnObj.onclick = function() {}; 其实就相当于将btnObj节点的onclick属性赋值为一个匿名函数,btnObj节点已经拿到,访问、修改属性自然也没问题了,你可以用两种方法分别console一下this,你会发现第一种输出的是window,第二种输出的是btnObj自己。


查看完整回答
2 反对 回复 2017-03-16
?
西兰花伟大炮

TA贡献376条经验 获得超318个赞


你把chg()放进去也是一样的,里面外面都是可以,不管什么匿名函数,onload只是在页面加载完成后再执行里面的代码

查看完整回答
1 反对 回复 2017-03-16
  • 3 回答
  • 0 关注
  • 1419 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信