gpt4 book ai didi

javascript - 如何在 CoffeeScript 中编写这个 lambda 闭包?

转载 作者:行者123 更新时间:2023-12-02 22:26:49 25 4
gpt4 key购买 nike

我正在尝试使用 CoffeeScript 重新创建这个流行的 jQuery lambda 闭包:

(function($, window, undefined){
$(document).ready(function(){
...
});
})(jQuery, window);

到目前为止我有这个:

(($, window, undefined) ->
$ ->
alert "js!"
)(jQuery, window)

我收到此错误:

Error: Parse error on line 1: Unexpected 'BOOL'

看起来未定义是这里问题的原因。我该如何解决这个问题?

最佳答案

undefined 是 CoffeeScript 中的关键字。您不需要确保它被正确定义,因此您可以忘记该部分。

CoffeeScript 提供了一个 do 关键字,您可以使用它来创建闭包,而不是使用立即调用的函数表达式语法。

CoffeeScript 源 try it
do ($ = jQuery, window) ->  
$ ->
alert "js!"
已编译的 JavaScript
(function($, window) {
return $(function() {
return console.log("js!");
});
})(jQuery, window);

CoffeeScript 1.3.1 之前不支持上述语法。对于旧版本,您仍然需要执行以下操作:

CoffeeScript 源 [try it]
(($, window) ->
$ ->
alert "js!"
)(jQuery, window)
<小时/>

如果您好奇,以下是 CoffeeScript 处理 undefined 的方式。

CoffeeScript 源 [try it]
console.log undefined
已编译的 JavaScript
console.log(void 0);

您可以看到它没有使用undefined变量,而是使用JavaScript's void operator产生未定义的值。

关于javascript - 如何在 CoffeeScript 中编写这个 lambda 闭包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7170446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com