javascript - 函数的返回值是多少?

标签 javascript typescript

您能告诉我下面的返回语句中的 Menu (return Menu;) 是什么吗?它是一个变量(未定义)还是内部函数的名称?

var Menu = (function () {
    // A straightforward constructor. 
    function Menu(item_list, total_pages) {
        // The this keyword is mandatory.
        this.items = item_list;
        this.pages = total_pages;
    }
    // Methods
    Menu.prototype.list = function () {
        console.log("Our menu for today:");
        for (var i = 0; i < this.items.length; i++) {
            console.log(this.items[i]);
        }
    };

    return Menu;
}());

最佳答案

Is it a variable...?

有效。它来自函数声明:

function Menu(item_list, total_pages) {
    // The this keyword is mandatory.
    this.items = item_list;
    this.pages = total_pages;
}

函数声明在作用域的当前执行上下文中创建规范所称的“绑定(bind)”。它实际上是一个变量。

因此return Menu;从匿名函数中返回Menu函数引用,并且外部var Menu = ...赋值进行赋值它到包含范围内的 Menu 变量。

关于javascript - 函数的返回值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42619155/

相关文章:

angular - 服务器在渲染之前不会等到 http 调用完成 - Angular 4 服务器端渲染

javascript - 带有警报的 onchange 在 ie 中不起作用

javascript - CSS 和 JavaScript 显示

javascript - 遍历 div 数组

javascript - chrome 中的 SSRS 报告--报告未水平滚动

typescript - 在 Typescript 中,如何检索我知道键但不知道路径的深层嵌套属性类型?

css - 如何从同一模式内的选择下拉列表中选择选项时设置模式的边距

javascript - 使用数据库中的数据将自动完成应用于动态生成的文本框

validation - 提交时的 Angular 2 触发器表单验证

typescript - 我应该如何在 typescript 中进行枚举比较