8、CoffeeScript 中的函数与对象:深入解析

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值