为了避免变量冲突和“一切”javascript专家说我们应该使用自调用函数,如下所示。但是我怎样才能从外面引用它。或者例如,我如何调用其中的foo函数?
onClick =“foo()”//这不适用于外面!!!
<div style="width: 500px; height: 500px; background: red;" id="dfg" onClick="foo()"></div>
<script>
(function () {
function foo(){
console.log("everything is OK")
}
}());
</script>
答案 0 :(得分:0)
通过onClick附加事件并不是真正的方法(你应该像Mohan Ahuja建议的那样使用addEventListener),但如果你必须这样做 - 这是如何做到的:
(function () {
function foo(){
console.log("everything is OK")
}
window["foo"] = foo;
}());
您无法在匿名函数之外执行赋值 - 但您在匿名函数中指定的任何内容都将正常工作。
然而,“onClick”是如此2002年。你应该使用更现代的方法。
答案 1 :(得分:0)
您可以将该方法添加到窗口对象。
(function (global) {
global.foo = function(){
console.log("everything is OK")
}
}(window));
foo(); // everything is OK