我在firefox和chrome中都写了一个自调用函数,它不会调用它。自我调用函数javascript
我写东西的
(function() { alert("THE"); })();
做自我调用函数不行当前浏览器中的效果?
谢谢
编辑:我没有包括所有的基本标签和其他所有的代码工作的页面
我在firefox和chrome中都写了一个自调用函数,它不会调用它。自我调用函数javascript
我写东西的
(function() { alert("THE"); })();
做自我调用函数不行当前浏览器中的效果?
谢谢
编辑:我没有包括所有的基本标签和其他所有的代码工作的页面
“自我调用函数”实际上并不是JavaScript的一部分,它只是一个术语,人们正在调用特定的代码模式(如AJAX等)。这些模式应该在javascript工作的任何地方工作。
你所谓的“自我调用函数”就是创建一个匿名函数并立即调用它(而不是说它将其存储在var中,作为对象值,作为函数参数等) 。
也就是说,以下是基本相同:
var f = function(){...}; f()
和
(function(){...})()
,是因为你的“自我调用函数”是JavaScript的一个基本组成部分,是没有可能的方式它不工作,除非内部不工作或你的环境搞砸了。你可以复制粘贴你的代码到一个新的空白页面,并且它会正常工作。还有其他一定会出错:
检查您的开发控制台中的错误。具体来说,请检查以确保您没有语法错误,或者在您正在测试的网页上没有发生一些奇怪的事情(例如,如果您以某种方式重新定义alert
...)。
这个函数可以使用。 Javascript支持函数式编程,因此浏览器不会运行该代码,即使是一个非常古老的浏览器也是荒谬的。你确定这个陈述正在达成吗?尝试调试该语句之前发生的JavaScript。
<script type="text/javascript">
(function() {
alert('Hello World!');
})();
</script>
适用于本机上安装的每个浏览器。
我曾与它生产这个错误自调用函数这个问题...
Uncaught TypeError: object is not a function
问题是由不具有开放支架
是的,我有同样的错误,添加了分号和瞧。 – Antoine
此功能之前结束行分号引起的绝对有效。我会检查您的浏览器的控制台在您的页面中的任何js错误。也许你可以试着在你的脚本的开头部署一个简单的console.log函数,看看是否有JavaScript被首先调用。
这个具有返回值的自调用函数可在所有当前浏览器(Safari,Chrome和Firefox)中正常工作。该功能立即自动匿名执行。希望这可以帮助。
<script type="text/javascript">
alert((function(){
return("Hello World");
})());
</script>
“self invoking”?你什么意思?顺便说一句,它在铬上工作 – DanC
你有一个链接到页面?该代码有效。如果你用'alert(“THE”)替换它,''不用这个函数。警报是否执行?我不这么认为。 – Paulpro
这部分代码完美工作。显示任何周围的代码。确保没有其他产生错误的JavaScript(你可以检查Firebug的或Chrome的控制台) –