我刚刚配置了 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/