我在firefox和chrome中编写了一个自调用函数,它不会调用它。
我写了一些东西到了
的效果(function () { alert("THE"); })();
自调用函数在当前浏览器中不起作用吗?
谢谢
编辑:我确实包含了所有基本标签,所有其他代码都在页面上工作
答案 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>