我的理解是,在咖啡脚本函数内部,“this”或“@”等于“window”(至少在 Rails 的上下文中)。为什么我可以让这段代码工作:
window.googletag = window.googletag or {}
window.googletag.cmd = window.googletag.cmd or []
window.googletag.cmd.push ->
window.googletag.defineSlot('/1003175/ad-name-here', [336, 280], 'div-gpt-ad-1349373630997-0').addService(window.googletag.pubads())
window.googletag.pubads().enableSingleRequest()
window.googletag.enableServices()
但不是这段代码
@googletag = @googletag or {}
@googletag.cmd = @googletag.cmd or []
@googletag.cmd.push ->
@googletag.defineSlot('/1003175/ad-name-here', [336, 280], 'div-gpt-ad-1349373630997-0').addService(@googletag.pubads())
@googletag.pubads().enableSingleRequest()
@googletag.enableServices()
当我放入我的代码警报(@ == window)时,我得到了真实的..如果它们是相同的,那么为什么一个工作而不是另一个工作?难道没有更优雅的方式来编写这段代码,然后将 window 附加到单词 googletag 的每个实例?