Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将一个函数从一个javascript模块重构到另一个.js文件,但哪个函数作用于基本对象?_Javascript_Leaflet - Fatal编程技术网

如何将一个函数从一个javascript模块重构到另一个.js文件,但哪个函数作用于基本对象?

如何将一个函数从一个javascript模块重构到另一个.js文件,但哪个函数作用于基本对象?,javascript,leaflet,Javascript,Leaflet,我有一个JS模块,包含以下两项功能 我想提取一项功能,使其位于另一个文件中,但作用于基本对象。 我想重构以下内容,以便addIconLayer()移动到另一个.js文件,因为该函数实际上不是核心基本功能,而是一个可选组件。我无法计算出它的语法,主要是因为我不太熟悉这个javascript模块模式(尽管我熟悉其他语言中的类/方法等) 我想要这样的东西,并且已经尝试过(没有用): 但这和类似的东西不起作用 我找不到任何类似扩展/重构的好例子。有人能告诉我正确的方法吗?如果您想/希望更精确地控制模块加

我有一个JS模块,包含以下两项功能

我想提取一项功能,使其位于另一个文件中,但作用于基本对象。

我想重构以下内容,以便addIconLayer()移动到另一个.js文件,因为该函数实际上不是核心基本功能,而是一个可选组件。我无法计算出它的语法,主要是因为我不太熟悉这个javascript模块模式(尽管我熟悉其他语言中的类/方法等)

我想要这样的东西,并且已经尝试过(没有用):

但这和类似的东西不起作用


我找不到任何类似扩展/重构的好例子。有人能告诉我正确的方法吗?

如果您想/希望更精确地控制模块加载,我会建议requireJS运行此程序时您会收到哪些具体错误?
<script src="basemodule.js"></script>
<script>basemodule.init('somevalue');</script>
var basemodule= (function ($) {

    var map;
    var icons;

    return {

        init(parameter1){
            map = new L.map(...); // Loads leaflet.js
            icons = getIconSet();
            addIconLayer(parameter1);
        },

        getIconSet(){
            icons = ...; // Assigns the icons
        },

        /* THIS IS THE FUNCTION I WANT TO MOVE TO A NEW CLASS - it still needs to act on map icons */
        addIconLayer(parameter1){
            map.doStuffToMap();
            var foo = icons;
        }
    };

})(jQuery);
<script src="basemodule.js"></script>
<script>basemodule = basemodule.init();</script>
<script src="iconlayer.js"></script>
<script>iconlayer.init(basemodule, 'somevalue');</script>
// Class which enables an icon layer to be added
var iconlayer = (function ($) {

    var map;

    return {

        init: function(mapinstance, parameter1) {
            map = mapinstance.map;

            map.doStuffToMap();
            var foo = icons;
        }
    };

})(jQuery);