我有以下JavaScript代码:

(function($){

    function JsBarcode(){
        //Some Code Here
    }

})(window.jQuery);

(function ($) {
    JsBarcode();
    //calls a JsBarcode not within a scope
})(jQuery);


运行上面的代码时,它给出以下错误:

Uncaught ReferenceError: JsBarcode is not defined


我正在尝试调用一个不在范围内的函数。我怎么能打电话呢?

最佳答案

2种选择:
-更改结构,使第二个模块位于第一个模块内:父作用域始终可见。
-更改导出功能的第一个模块,以便可以在外部访问它。下面的样本



var firstModuleHandle = (function($){

    var JsBarcode = function(){
        //Some Code Here
        console.log("can access me?");
    }
    return {JsBarcode: JsBarcode};

})(window.jQuery);

(function ($) {
    firstModuleHandle.JsBarcode();
    //calls a JsBarcode not within a scope
})(jQuery);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

07-26 03:14