调用匿名函数内部的函数

时间:2014-03-21 10:07:20

标签: javascript

为了避免变量冲突和“一切”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>

2 个答案:

答案 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

Demo