2

我写不同的文件下的JavaScript模块百通这样的:的JavaScript模块特征码文件级联在一个文件中,并使用它们的功能

文件1.js

var Module = (function (module) { 

    module.function = function() { 

    console.log(this.thirdFunction) // This is my issue. I cannot access the function from the third file because it is concatenated in a way that the function still not exist. 

    }; 

    return module; 

}(Module || {})); 

一些文件夹/文件2.js

var Module = (function (module) { 

    module.somethingElse = function() { 


    }; 

    return module; 

}(Module || {})); 

无论/文件3.js

var Module = (function (module) { 

    module.thirdFunction = function() { 


    }; 

}(Module || {})); 

我把所有这些文件放在不同的目录中,名称在不同的时间。 然后我使用连接工具有一个文件,然后我在我的html文件中使用它。但我面临着我无法解决的麻烦。

要具备所有这些工作,我必须包括他们在一个特定的方式和顺序来调用任何我需要的功能,当事情尚未确定/创建在返回的最终目标重新整理文件。如果我有100个文件和文件夹,这将再次成为我的麻烦。

我是否理解这个权利:http://gruntjs.com/configuring-tasks#globbing-patterns 我手动订购文件,文件夹和我所有的咕噜任务中的所有内容?

我不想使用AMD的工具,只是普通的JavaScript文件以及一些方法来破解订单要求。如果对我来说没有任何简单的想法,我会尝试使用像require.js这样的AMD工具,但我不确定这些工具是否能够帮助解决这个跛脚问题。 我希望得到一些繁重的工具,一些文件/文件夹的名称约定,任何不会强迫我安装越来越多的工具。 提前谢谢!

困扰我的是下面的另一件事:

如果我想要隔离代码,但我没有在最后的对象返回对象的属性,是它正常的做这样的事情:

文件4.js

var Module = (function (module) { 

var someThing = Module.somethingElse() // from file 2.js 
and then using someThing here for clicking, DOM rendering, etc, etc 

}(Module || {})); 

它是愚蠢的坚持同样的var Module约定文件,其中我居然不返回任何东西?我只是觉得这样如何避免对象名称,并再次

回答

0

事实上,只是对于这样的问题创造了AMD工具使用this。但是你可以在一定程度上用grunt解决这个问题。您可以简单地组织需要首先进入文件夹的文件,并按照您想要的顺序列出文件,然后再包含所有文件的顺序无关紧要的文件夹,其中包括所有内容。

'js/main/First.js', 
'js/main/Second.js', 
'js/rest/*.js' 

无论你选择什么样的项目,你可能想看看Require.js或Browserify为今后的工作。

+0

谢谢GMchris! 你可以给我一些关于我最后一段的困境的说明吗? 顺便说一句,如果你已经使用IE6模块化导入,这可以以某种方式解决这个问题,或者它会一样吗? –

+0

你的意思是使用var模块,如果你没有返回任何东西?模块的要点是保持全局名称空间的清洁,并且可以决定什么是公有和什么是私有的,尽管强烈建议您只需将需要公开的任何需要附加到Module对象使用返回{//所有你的公共成员};代替。没有返回的模块只是一个闭包。它对于初始化和设置事件及其处理程序非常方便。至于关于IE6的观点,恐怕我对这个主题的了解还不够多,真的没什么帮助。 – GMchris

+0

所以你会建议有人使用这个“没有返回的模块只是一个闭包,它对于初始化和设置事件及其处理程序非常方便。”或不?我没有明白。 (function(){...' –

相关问题