1
我花了一些时间在我认为是一个错误,直到我找到解决方法。对象链接审问
但我不明白为什么以前的代码失败。
请有洞察力吗?
失败代码:
getModule: ->
Gmaps4Rails.Google
createMap : ->
new @getModule().Map()
工作代码:
constructor:
@module = @getModule()
getModule: ->
Gmaps4Rails.Google
createMap : ->
new @module.Map()
我会理解,如果我写了:'new this.getModule.Map()',但事实并非如此。这转化为:'返回新函数(){return Gmaps4Rails.Google; }()'我猜 – apneadiving 2012-08-14 19:39:28
@apneadiving - 本质上 - 它更接近于将其翻译为'var _temp = function(){return Gmaps4Rails.Google; };返回新的_temp();' – 2012-08-14 19:41:23
因此'这个'继承'Gmaps4Rails.Google'然后this.Map()'被触发?听起来很疯狂:)(+1在此期间) – apneadiving 2012-08-14 19:48:19