CoffeeScript 中的函数与对象:深入解析
1. CoffeeScript 变量与作用域
在 CoffeeScript 里,变量赋值时无需 var 关键字。当对变量赋值,会先在当前作用域查找该变量名,若未找到则在当前作用域创建。CoffeeScript 不存在变量遮蔽现象,即无法在内部作用域创建与外部作用域同名的新局部变量。例如:
outer = 1
do ->
outer = 2
inner = 1
outer
# 2
inner
# ReferenceError
此外,为避免变量被置于全局作用域,CoffeeScript 编译器会将每个编译文件的代码包裹在一个作用域中,实际编译成 JavaScript 时如下:
(function() {
// <your compiled program goes here>
}).call(this);
2. 函数嵌套
函数在 CoffeeScript 中是一等公民,不仅能在一个函数中调用另一个函数、将函数作为参数传递,还能在函数内部定义函数,且遵循词法作用域规则。这意味着内部函数可访问外部函数的所有变量。
以数组扁平化函数为例,原本需要两个函数:
flatten = (acc,cu
超级会员免费看
订阅专栏 解锁全文
89

被折叠的 条评论
为什么被折叠?



