fan*_*ncy 3 javascript coffeescript
funName = () ->
$(".foo").addClass("bar");
Run Code Online (Sandbox Code Playgroud)
编译成匿名函数的范围.funName从控制台调用会导致undefined.
(function() {
var funName;
funName = function() {
return $(".foo").addClass("bar");
};
}).call(this);
Run Code Online (Sandbox Code Playgroud)
这样编译的原因是什么?如何使用它?
此外,使用CoffeeScript对函数内强制返回的任何见解都会很棒.为什么会那样?我如何因为它而需要不同的代码?
迈克在这里回答了主要问题.模块化包装器是CoffeeScript新手的常见混淆点,如以下相关问题所示:
至于你的另一个问题:如果你不想让一个函数返回任何东西,只需单独创建该函数的最后一行,return或者等价undefined.要么编译成没有的函数return.例如:
funName = ->
$(".foo").addClass "bar"
return
Run Code Online (Sandbox Code Playgroud)
编译成
var funName;
funName = function() {
$(".foo").addClass("bar");
};
Run Code Online (Sandbox Code Playgroud)
注意,正在进行讨论(问题899),关于用于定义无返回函数的可能替代语法.如果当前提案被接受,您将能够将您的功能编写为
funName = -/> $(".foo").addClass "bar"
Run Code Online (Sandbox Code Playgroud)
如果你喜欢这种语法,你应该表达对它的支持.
| 归档时间: |
|
| 查看次数: |
1266 次 |
| 最近记录: |