自我调用函数javascript

时间:2011-07-16 06:33:21

标签: javascript

我在firefox和chrome中编写了一个自调用函数,它不会调用它。

我写了一些东西到了

的效果
(function () { alert("THE"); })();

自调用函数在当前浏览器中不起作用吗?

谢谢

编辑:我确实包含了所有基本标签,所有其他代码都在页面上工作

6 个答案:

答案 0 :(得分:8)

“自我调用函数”实际上并不是javascript的一部分,它只是一个人们称之为特定代码模式的术语(如AJAX等);这些模式应该适用于javascript工作的任何地方。

你所谓的“自调用函数”只是创建一个匿名函数并立即调用它(而不是将其存储在var中,作为对象值,作为函数参数等)。

即,以下内容基本相同:

var f = function(){...}; f()

( function(){...} )()

因为你的'自我调用函数'是javascript的基本部分,除非内部不起作用或你的环境搞砸了,否则它没有可能无法工作。您可以将代码复制粘贴到新的空白页面上,它可以正常工作。其他一切都必须出错:

在开发者控制台中检查错误。具体来说,检查以确保您没有语法错误,或者您正在测试它的网页上没有发生一些奇怪的事情(例如,如果您以某种方式重新定义alert ...)。

答案 1 :(得分:4)

我有一个自调用函数出现此错误...

Uncaught TypeError: object is not a function

问题是由于在开始括号

之前没有半个冒号结束

答案 2 :(得分:2)

该功能有效。 Javascript支持函数式编程,因此浏览器不能运行该代码,即使是非常古老的浏览器也是荒谬的。你确定已经达成了声明吗?尝试调试在该语句之前发生的javascript。

答案 3 :(得分:2)

<script type="text/javascript">
  (function() {
     alert('Hello World!');
  })();
</script>

适用于我在此计算机上安装的每个浏览器。

答案 4 :(得分:0)

这个功能绝对有效。我会在浏览器的控制台上查看页面中的任何js错误。也许您可以尝试在脚本的开头放置一个简单的console.log函数,以查看是否首先调用了任何JavaScript。

答案 5 :(得分:0)

具有返回值的自调用功能可以在所有当前浏览器(Safari,Chrome和Firefox)中正常运行。此功能立即,自动和匿名执行。

<script type="text/javascript">
    alert((function(){
        return("Hello World");
    })());
</script>