为了账号安全,请及时绑定邮箱和手机立即绑定

在 CoffeeScript / JS 中将函数分配给 vars

在 CoffeeScript / JS 中将函数分配给 vars

Qyouu 2022-12-09 15:34:50
以下 CoffeeScript:greet = -> "This is an example of a function"编译时生成以下 JavaScript 代码:(function() {  var greet;    greet = function() {    return "This is an example of a function";  };}).call(this);我的问题是,为什么 JavaScript 不创建像这样的单个函数:(var greet = function() {    return "This is an example of a function"};}).call(this);
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

这是因为 CoffeeScript 如何实现词法范围。首先,默认情况下,CoffeeScript 转译器会将输出的 JavaScript 包装在一个匿名函数中,以使其远离全局命名空间(尽管可以禁用此行为)。这就是外部函数的原因(如果你要编写更多的 CoffeeScript 代码,那么它最终将在 JS 中的一个匿名函数中结束)。

其次,CoffeeScript 转译器会自动声明在作用域顶部使用的所有变量(同样,如果您在 CoffeeScript 中使用更多顶级变量,那么它们将在顶部用 声明greet;如果您仅在内部使用任何变量函数,那么它们也将在内部声明,而不是在更大范围的外部)。



查看完整回答
反对 回复 2022-12-09
  • 1 回答
  • 0 关注
  • 63 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信