为什么我得到未定义加值?

时间:2018-12-22 03:00:39

标签: javascript iife

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

当我打电话

budgetController.publicTest2();

我得到:

  

46未定义

我期望46,但是为什么我也得到未定义?

完整代码:

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();

1 个答案:

答案 0 :(得分:3)

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

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

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