在不使用匿名函数的情况下编写此代码 运行
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,所以你的帮助将不胜感激。谢谢:)
i was wondering why do we need to use anonymous function to make it work?
因为你要给浏览器/引擎一些事件发生时可以执行的东西。函数允许您这样做。
注意:函数不一定要匿名,也可以命名:
function handler() {
// handler code here
}
document.getElementById('target').onclick = handler;
cant we run the code without it?
否(至少不是点击)。
你的说法只对了一半。
您需要一个函数,因为(我假设)您希望在单击时更改文本,而不是在定义事件处理程序时更改文本。由于计算机仍然无法读懂程序员的想法,因此必须使用语法糖来区分这两种情况:
- 这是一些代码,运行现在
- 这是一些代码,运行稍后
函数(或类似结构)已经存在于几乎所有语言中,因为代码重用是编写任何复杂软件的基础。能够传递函数引用是一个干净且有用的扩展,可以解决该需求。
但不一定要匿名。
感谢有用的回复。如果正确的话,在 Javascript 中,因为 .onclick 是事件处理程序,浏览器期望(仅)功能接下来出现,以定义事件处理程序触发的内容。
但如果我们像这样编写内联脚本,情况就不一样了。 http://jsfiddle.net/he0rspdz/ p.s 下面的代码没有正确显示,请改用 jsfille link。
<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>
所以这是我的 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,所以你的帮助将不胜感激。谢谢:)
i was wondering why do we need to use anonymous function to make it work?
因为你要给浏览器/引擎一些事件发生时可以执行的东西。函数允许您这样做。
注意:函数不一定要匿名,也可以命名:
function handler() {
// handler code here
}
document.getElementById('target').onclick = handler;
cant we run the code without it?
否(至少不是点击)。
你的说法只对了一半。
您需要一个函数,因为(我假设)您希望在单击时更改文本,而不是在定义事件处理程序时更改文本。由于计算机仍然无法读懂程序员的想法,因此必须使用语法糖来区分这两种情况:
- 这是一些代码,运行现在
- 这是一些代码,运行稍后
函数(或类似结构)已经存在于几乎所有语言中,因为代码重用是编写任何复杂软件的基础。能够传递函数引用是一个干净且有用的扩展,可以解决该需求。
但不一定要匿名。
感谢有用的回复。如果正确的话,在 Javascript 中,因为 .onclick 是事件处理程序,浏览器期望(仅)功能接下来出现,以定义事件处理程序触发的内容。
但如果我们像这样编写内联脚本,情况就不一样了。 http://jsfiddle.net/he0rspdz/ p.s 下面的代码没有正确显示,请改用 jsfille link。
<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>