javascript - 访问 IIFE 中的函数或变量

标签 javascript jquery iife

我创建了一些 JavaScript,我想将其包装在 IIFE 中,但我发现这很困难,因为 JavaScript 包含在不同 JS 文件中使用的变量和函数。

示例:

my-app.js

(function(window, document, $){

    var currentArea;

    function changeAreaTo(value){
        currentArea = $('.sp-spine-item:eq('+value+')');
    }

}(window, document, window.jQuery));

outside-app.js

(function(window, document, $){

    changeAreaTo(3);
    $('html, body').scrollTop(currentArea.position().top);

}(window, document, window.jQuery));

我的实际 JS 比上面复杂一点,但这让您对我正在处理的内容有一个基本的了解。

my-app.js 可以在多个项目中使用,但不应针对每个项目进行修改,它有点像基础库。

所以,我想知道外部 JS 文件访问单独 IIFE 中的任何变量或函数的最佳方式是什么。

最佳答案

您需要做的就是返回您想要在另一个文件中访问的函数,并将其分配给全局可访问的文件。

var changeAreaTo = (function(window, document, $){

    var currentArea;

    function changeAreaTo(value){
        currentArea = $('.sp-spine-item:eq('+value+')');
    }
    return changeAreaTo;

}(window, document, window.jQuery));

关于javascript - 访问 IIFE 中的函数或变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28609420/

相关文章:

javascript - 网络音频 API : how to play and stop audio?

javascript - 在 PHP 或 JS 中将数字列表转换为带有后缀的特定价格格式?

jQuery 使用 HTML 字符串更新标签的文本

javascript - 在 IIFE 中用 global 替换 window 可以吗?

javascript - 立即调用函数并在 $scope 中调用

javascript - 无法从每个语句中获取正确的值

javascript - 我在哪里可以找到谷歌地图上的地点 ID

javascript - 为什么我的弹出窗口立即关闭?

javascript - 在js中使用iffe和构造函数创建对象

javascript - jQuery 在 If/Else 语句中隐藏/显示不起作用