Hello_Tela 2020-10-21 19:42 采纳率: 0%
浏览 34

在js文件中,return的函数为什么不能将自身括起来再调用?出错提示Uncaught TypeError: fu is not a function

有2个文件,分别为Untitled-1.html和main.js,其中匿名函数返回函数fu1,我尝试了3种调用fu1的方法,前2种成功了,第三种失败,如下:

main.js

var fu = function () {
    var fu1 = function () {
        console.log("hhlhhhhhhhhhhhhhhhh");
    }
    return fu1;
}

//fu()();成功

//var f = fu();
//f(); 成功


(fu())(); //报错Uncaught TypeError: fu is not a function

Untitled-1.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
    </style>

</head>

<body>
    <script src="main.js"></script>
</body>

</html>

注意
第三种方法(fu())();写在html文件中没问题,在控制台直接输出也没问题,单纯在js中写会报错。

  • 写回答

1条回答 默认 最新

  • Manggoo 2022-11-10 11:33
    关注

    var fu = function () {
    var fu1 = function () {
    console.log("hhlhhhhhhhhhhhhhhhh");
    }
    return fu1;
    }

    //fu()();成功

    //var f = fu();
    //f(); 成功

    // 请注意:括号之前没有分号会连接到上一个变量后面进行函数调用。所以报错了,加上分号就能执行。
    ;(fu())();

    评论

报告相同问题?

悬赏问题

  • ¥15 gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置
  • ¥15 计算决策面并仿真附上结果
  • ¥20 halcon 图像拼接
  • ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
  • ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥100 求ASMedia ASM1184e & ASM1187e 芯片datasheet/规格书
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么