自调用咖啡记录
$ ->
alert "Hello CoffeeScript!"编译成
$(function() {
return alert("Hello CoffeeScript!");
});现在,相同的代码-- $被任何其他变量替换->
hello= ->
alert "Hello CoffeeScript!"以上代码-不自行执行。
给出一个$ 变量如何启用自执行(不包括jQuery库)?(jQuery在这里扮演角色吗?)
我知道您必须使用do在coffeescript中具有自调用函数--这不是我的问题(请不要重复)。
-coffeescript初学者
发布于 2015-01-11 13:29:10
代码是而不是自动执行。它只是给jQuery一个函数引用。稍后,当DOM准备好时(如果已经准备好的话),调用该函数的是jQuery。
详细信息在jQuery文档中。
如何给
$变量启用自执行(不包括jQuery库)?
如果要调用该函数,那么显然包含了jQuery (或者其他定义函数并将其附加到$并调用传递它的函数的东西)。
( jQuery在这里扮演一个角色吗?)
是。
我知道您必须使用
do在coffeescript中具有自调用函数
如果您的意思是立即调用而不是自用(一个常见的用词不当),则不,您没有:
(() ->
alert 'Hello!'
)()...which翻译为:
(function() {
return alert('Hello!');
})();...which定义了一个函数并立即调用它。
或者如果您真正指的是self-invoking (例如,递归):
(foo = (n) ->
alert 'Call ' + n
if n > 0
foo(n - 1);
)(10)...which翻译为:
var foo;
(foo = function(n) {
alert('Call ' + n);
if (n > 1) {
return foo(n - 1);
}
})(10);...which定义了一个自称为10次的函数。
发布于 2015-01-11 13:30:00
不,$标识符没有什么特别之处。代码段之间的实际区别是标识符后面的= -没有,它使用函数作为参数调用它,使用它分配函数。
hello ->
alert "Hello CoffeeScript!"
// compiles to:
hello(function() {
return alert("Hello CoffeeScript!");
});
hello = ->
alert "Hello CoffeeScript!"
// compiles to:
var hello;
hello = function() {
return alert("Hello CoffeeScript!");
};因此,如果您的hello函数确实调用了给定的回调(作为有吗?),您的函数表达式将在第一种情况下执行(不需要赋值)。
注意,这不是“自调用”,因为调用函数的是hello/$。对于生平 (通常称为“自调用”),可以使用关键字。
https://stackoverflow.com/questions/27887565
复制相似问题