使此代码在不使用匿名函数的情况下运行
make this code run without using anonyomous function
这是我的JS代码 http://jsfiddle.net/f653jnm0/
<body>
<button id="textChanger">change first div text</button>
<div id="firstdiv"> this is some text</div>
<script type="text/javascript">
document.getElementById("textChanger").onclick=function() {document.getElementById("firstdiv").innerHTML='blabla'};
</script>
当您单击该按钮时,它会更改文本。 我想知道为什么我们需要使用匿名函数来使其工作?没有它我们就不能运行代码吗?如下所示。
http://jsfiddle.net/hjavw3h5/1/
<body>
<button id="textChanger">change first div text</button>
<div id="firstdiv"> this is some text</div>
<script type="text/javascript">
document.getElementById("textChanger").onclick=document.getElementById('firstdiv').innerHTML='bla bla bla';
</script>
在这种情况下,JS代码默认运行,文本在不与按钮交互的情况下更改。我刚开始学习JS,所以你的帮助将不胜感激。谢谢:)
我想知道为什么我们需要使用匿名函数来使其工作?
因为您必须为浏览器/引擎提供可以在事件发生时执行的东西。函数允许您执行此操作。
注意:该函数不必是匿名的,也可以命名为:
function handler() {
// handler code here
}
document.getElementById('target').onclick = handler;
没有它我们就不能运行代码吗?
否(至少不是点击)。
你的说法只对了一半。
您需要一个函数,因为(我假设)您希望在单击时更改文本,而不是在定义事件处理程序时更改文本。由于计算机仍然无法读取程序员的思想,因此必须有语法糖来区分这两种情况:
- 这是一些代码,现在运行它
- 这是一些代码,稍后运行
函数(或类似的构造)已经存在于几乎所有语言中,因为代码重用是编写任何复杂软件的基础。能够传递函数引用是一个干净而有用的扩展,可以解决这一需求。
但它不一定是匿名的。
感谢您的有用回复。 如果得到它,在Javascript中,因为.onclick是事件处理程序,浏览器期望(仅)FUNCTION接下来出现,以定义该事件处理程序触发的内容。
但如果我们像这样编写内联脚本,则不会。http://jsfiddle.net/he0rspdz/p.s下面的代码没有显示正确使用 jsfille 链接代替。
<body>
<button onclick="document.getElementById('firstdiv').innerHTML='bla bla bla';" id="textChanger">change first div text</button>
<div id="firstdiv"> this is some text</div>
</body>
相关文章:
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 如何在不使用 new 关键字的情况下从函数创建对象
- 在什么情况下需要同时使用compile&链接函数的角度
- 为什么在这种情况下,“This”确实充当javascript函数中的私有成员
- 是否可以在不更改上下文的情况下调用函数.apply
- 如何在不编写样板代码的情况下在Node中创建可重用函数
- 是否可以在没有外部输入的情况下使函数具有自我意识
- 如何在不预定义的情况下将javascript函数传递到另一个函数中
- setTimeout()在忽略间隔的情况下重复调用函数
- 如何在不使用javascript执行的情况下为函数分配参数
- AJAX函数在没有警报的情况下无法工作
- 在没有大量回调函数的情况下在列表元素上循环播放同一动画
- 在不使用隔离作用域的情况下执行函数的角度指令
- 在这种情况下,如何将字符串添加到函数中 php
- 我可以在不编写函数的情况下使用 scrollTop 吗?
- ReactJs:this.setState的情况下不调用回调函数
- 如何在没有javascript中的split函数的情况下将字符串拆分为单词
- 在没有内置 Javascript 函数的情况下将基数 10 转换为其他基数 2 的数字
- 函数在我的情况下无法执行