在 Coffeescript 中将函数从模块导入到全局命名空间?
从您的模块 utils.coffee 开始:
exports.foo = ->
exports.bar = ->
然后您的主文件:
utils = require './utils'
utils.foo()
foo() 和 bar() 是您将经常调用的函数,因此您:
foo = require('./utils').foo
bar = require('./utils').bar
foo()
当模块中仅定义了几个函数但变得混乱时,此方法有效随着功能数量的增加。有没有办法将模块的所有功能添加到应用程序的命名空间中?
Start with your module, utils.coffee:
exports.foo = ->
exports.bar = ->
Then your main file:
utils = require './utils'
utils.foo()
foo() and bar() are functions you'll be calling frequently, so you:
foo = require('./utils').foo
bar = require('./utils').bar
foo()
This approach works when only a few functions are defined in the module, but becomes messy as the number of functions increases. Is there a way to add all of a module's functions to your app's namespace?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用
extend
(使用 underscore 或任何其他提供它的库。如有必要,请自行编写) :Use
extend
(with underscore or any other library that provides it. Write it yourself if necessary):如果你不想使用下划线,你可以简单地这样做:
If you don't want to use underscore, you could simply do:
不。据我所知,这是你能做的最好的事情(使用 CS 的 解构赋值):
No. This is, to my knowledge, the best you can do (using CS' destructuring assignment):
将所有模块功能导出到全局范围的另一种方法如下:
应用模块:
主应用程序:
Another way to exports all modules function to global scope like so:
Application Module:
Main App:
这个怎么样:
How's this:
我认为这样的方法是一个很好的方法:
utils.coffee
main.coffee
something like that is a good approach to my opinion:
utils.coffee
main.coffee