我很困惑,为什么foo2的作品,但不foo1。JavaScript函数声明问题
JS小提琴:https://jsfiddle.net/474v3mfd/4/
HTML
<a onclick="foo1()">
foo1
</a>
<a onclick="foo2()">
foo2
</a>
的Javascript
function foo1(){
console.log("foo1 called..");
}
foo2 = function(){
console.log("foo2 called..");
}
控制台日志
(index):60 Uncaught ReferenceError: foo1 is not defined at HTMLAnchorElement.onclick ((index):60) onclick @ (index):60 (index):50 foo2 called..
摘要
该问题是特定于JSFiddle。当我把代码放入HTML文件时,它工作正常。
你必须表现得更加完整的例子,但我的猜测是,该代码是在函数内部(例如onload事件),所以'foo1'是本地和'foo2'是全球性的。 – JJJ
**首先:**确保脚本在'a'标签之前加载。虽然它没有建议。你应该使用'.addEventListener'来绑定事件。 **第二:**声明不带'var'的变量将使其成为全局变量。 – Rajesh
添加JS小提琴。 https://jsfiddle.net/474v3mfd/4/ –