javascript - 匿名函数中的函数作用域

标签 javascript jquery

我刚刚配置了 gulp/Bower 来缩小和捆绑我的 javascript 文件,并且创建了一些遵循自动执行匿名函数格式的单独 JS 文件。例如假设我有一个名为“mobile-functions.js”的文件,其中包含一个名为“isViewportInMobile”的函数。

mobile-functions.js

(function ($) {

    function isViewportInMobile(mobileWidthOverride) {
        var widthToCheckAgainst = mobileWidthOverride || 768;
        return window.innerWidth < widthToCheckAgainst;
    }

})(jQuery);

如何从不同的 Javascript 文件(也遵循自执行匿名函数格式)调用该函数?当我尝试在其他文件中使用该函数时,它说 isViewportInMobile 未定义。

最佳答案

根据您对相关文件的访问权限,您可以稍微修改它以将自调用函数的范围传递给变量。但是,我假设如果您有这样的访问权限,您可能不需要创建这个线程,但无论如何,您可以这样做......

var something = (function($) {

    this.isViewportInMobile(mobileWidthOverride) {
        var widthToCheckAgainst = mobileWidthOverride || 768;
        return window.innerWidth < widthToCheckAgainst;
    };

    return this;
})(jQuery);

这将允许您像这样调用该函数:

something.isViewportInMobile(params);

我希望这有一些用处。

关于javascript - 匿名函数中的函数作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38396970/

相关文章:

jquery - BBC 网站上的拖放部分是如何完成的?

javascript - Jquery AJAX JSON PHP POST 上未找到 404

javascript - 增加视频循环迭代

javascript - FullCalendar 按钮放置月份名称应位于左右箭头之间

javascript - React 代码中出现意外的 Webpack 语法错误 "::"

javascript - 表格仅在 tbody 中突出显示

javascript - 如何通过 XMLHttpRequest() post 请求传递 base64encode 字符串

javascript - 在哪里可以找到 dojo 工具包 dijit 小部件的图标图像列表?

javascript - Mobile Safari 和 iframe 使用 youtube 源显示/隐藏

jquery - 图像填满屏幕的宽度,但可视部分的高度保持不变