在coffeescript中调用函数的两种方式之间的区别(在Rails中)

时间:2014-06-26 23:21:50

标签: javascript jquery coffeescript turbolinks

有人可以解释以下两种语法之间的细微差别吗?

(我正在使用rails和turbolinks和我的coffeescript)

1)我发现了这种推荐的代码调用方式。

windowReady = ->
  customFunction = ->
    ...code...

  jQuery ($) -> 
    ...code...

$(window).load(windowReady);
$(window).on('page:load', windowReady);

2)我还使用了以下语法,但行为没有明显差异。

(->
  customFunction = ->
    ...code...

  jQuery ($) -> 
    ...code...
).call this

这两种方式应该注意哪些微妙的差异,以及如何解决它们? 比另一个更优选吗?

1 个答案:

答案 0 :(得分:1)

这是苹果与橘子的比较。

显然windowReady和匿名函数的主体是相同的,但第一个版本是使用JQuery(我猜TurboLinks)库而第二个版本是(在方法本身之外)直接JS / CS。

如上所述,第二个版本将只执行一次匿名函数 - 然后首先加载并执行JS / CS文件。每当windowReady事件被触发时,第一个版本将执行page:load函数。