javascript - 为什么我得到 undefined 加上值?

标签 javascript iife

我是 JS 的新手,我只是在玩弄语法。

当我打电话

budgetController.publicTest2();

我得到:

46 Undefined

我期待 46,但为什么我也得到 Undefined?

完整代码:

var budgetController = (function() {
    var x = 23;

    function add(a) {
        return a + x;
    }

    return {
        publicTest: function() {
            const y = add(23);
            return y;
        },
        publicTest2: function() {
            return (function(d){
                console.log(d());
            })(budgetController.publicTest);
        },
    }
    })();
    
budgetController.publicTest2();

最佳答案

控制台打印出 undefined,因为这是 budgetController.publicTest2() 表达式的返回值。

控制台总是打印出您输入的表达式的值。例如:

  • 如果您输入 1 + 2,您将得到 3
  • 如果你输入 console.log(3) 你会得到 3undefined (返回 表达式 console.log(3))
  • 的值

关于javascript - 为什么我得到 undefined 加上值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53892709/

相关文章:

javascript - i18next 插值中的 React 组件显示为 [object Object]

javascript - IIFE 如何保护命名空间?

node.js - 国际电影节。 TypeError : require(. ..)(...) 不是函数

JavaScript自执行函数 "is not a function"

javascript - parseInt 表现奇怪 - 可能

javascript - 如何停止滑动到最后一张幻灯片?

多年前的 javascript 时间戳并考虑闰年

javascript - 如何定位相机,使物体在屏幕上始终具有相同的像素宽度和高度?

javascript - 为什么在匿名函数调用上使用 NOT 运算符? (类似于淘汰赛 2.1.0)

JavaScript 匿名函数表达式 vs IIFE