我在 firefox 和 chrome 中编写了一个自调用函数,但它不会调用。
我写了一些东西,大意是
(function () { alert("THE"); })();
自调用函数在当前浏览器中不起作用吗?
我确实包含了页面上所有必要的标签和所有其他代码
“自调用函数”实际上并不是 javascript 的一部分,它只是人们调用特定代码模式的术语(如 AJAX 等);这些模式应该在 javascript 工作的任何地方工作。
你所说的“自调用函数”只是创建一个匿名函数并立即调用它(而不是说将其存储在 var 中,作为对象值,作为函数参数等)。
即以下内容基本相同:
var f = function(){...}; f()
和
( function(){...} )()
因此,因为你的“自调用函数”是 javascript 的基本部分,所以除非内部不工作或者你的环境混乱,否则它不可能不工作。您可以将代码复制粘贴到新的空白页上,这样就可以正常工作。肯定还有其他问题:
在开发控制台中检查错误。具体来说,检查以确保没有语法错误,或者您正在测试的网页没有发生任何奇怪的事情(例如,如果您以某种方式重新定义
alert
...)。
我遇到了一个自调用函数的问题,它产生了这个错误......
Uncaught TypeError: object is not a function
问题是由于在左括号之前没有分号结束该行而导致的
<script type="text/javascript">
(function() {
alert('Hello World!');
})();
</script>
适用于我在这台机器上安装的每个浏览器。
该功能有效。 Javascript 支持函数式编程,因此对于浏览器来说,不运行该代码,即使对于非常旧的浏览器来说也是荒谬的。您确定正在达成该声明吗?尝试调试该语句之前发生的 JavaScript。
这个功能绝对有效。我会检查您的浏览器控制台是否有页面中的任何 js 错误。也许您可以尝试在脚本开头放置一个简单的 console.log 函数,以查看是否首先调用了任何 JavaScript。
这个带有返回值的自调用函数可以在所有当前浏览器(Safari、Chrome 和 Firefox)中正常工作。该函数立即、自动、匿名执行。
<script type="text/javascript">
alert((function(){
return("Hello World");
})());
</script>
我也有类似的问题。我在下面提到。
我无法在任何浏览器上运行这个自调用函数
(function myfunc() {
var x = 34;
console.log(x);
})();
但是每当我像下面这样添加 window.onload 时,它就工作得很好:
window.onload = (function myfunc() {
var x = 34;
console.log(x);
})();