我正在尝试将我的所有coffeescript文件合并到我的rails 3.1资产管道网站上,以便开发页面可以加载更快。我从28秒开始下降到6秒。但是以前唯一的本地函数名称现在都在同一个文件中并且碰到重复。我想保持相同的函数名称,但在某种命名空间内。
以下是一些示例文件。
档案a.js.coffee
root = exports ? this
$(document).ready ->
sayHi()
root.sayHi = ->
greeting()
greeting = ->
alert("Howdy")
档案b.js.coffee
root = exports ? this
$(document).ready ->
sayHello()
root.sayHello = ->
greeting()
greeting = ->
alert("Hi there")
如何将这两个文件的内容结合在一起并保留两个独立的greeting
函数?
新文件ab.js.coffee
#------------------
# from a.js.coffee
#------------------
root = exports ? this
$(document).ready ->
sayHi()
root.sayHi = ->
greeting()
greeting = ->
alert("Howdy")
#------------------
# from b.js.coffee
#------------------
root = exports ? this
$(document).ready ->
sayHello()
root.sayHello = ->
greeting()
greeting = ->
alert("Hi there")
答案 0 :(得分:2)
命名函数的一种方法是使用对象。
#------------------
# from a.js.coffee
#------------------
a =
sayHi: ->
@greeting
greeting: ->
console.log('a')
alert("Howdy")
#------------------
# from b.js.coffee
#------------------
b =
sayHello: ->
@greeting
greeting: ->
console.log('b')
alert("Hi there")
#------------------
# initializer
#------------------
$(document).ready ->
a.sayHi()
b.sayHello()
return