为何类jQuery的匿名函数在Node.js中未自动执行?
问题原因及解决方法
你的代码之所以没有输出"hi",核心原因是:你只定义了一个匿名函数,但从未调用它。不管是在浏览器环境还是Node.js环境,函数只有被调用才会执行内部代码。
你看到的jQuery这类库中的类似代码,其实都是自执行匿名函数——定义完函数后立刻调用它,只是你可能没注意到末尾的执行语法。
正确的自执行写法示例
要让函数执行并输出内容,需要在函数定义的末尾加上()来调用它:
(function (e){ console.log("hi") })(); // 末尾的()就是执行这个匿名函数
或者也可以用其他方式触发执行,比如:
// 用!运算符触发执行 !(function (e){ console.log("hi") })(); // 把函数赋值给变量再调用 const myFunc = function (e){ console.log("hi") }; myFunc();
为什么jQuery里的代码能生效?
jQuery的核心代码本身就是一个自执行匿名函数,比如它的典型结构是:
(function(window, factory) { // jQuery内部逻辑 })(window, function() { // 初始化逻辑 });
这里末尾的(window, function(){})就是把参数传入匿名函数并立即执行,所以代码能正常运行。
内容的提问来源于stack exchange,提问作者Bio Shot
相关产品推荐
相关产品推荐

