在coffeescript中声明和屏蔽模块变量

本文探讨了CoffeeScript中变量的默认作用域为局部,并解释如何通过模块头部声明实现全局效果。同时介绍了如何使用回引号标记法在函数内屏蔽外部变量声明。

coffeescript中所有变量默认为局部变量,也就是说任何函数内部的非闭包变量赋值都将在函数头部产生该变量的var声明。非闭包变量指的是:该变量没有在包裹该函数的外部函数和模块中声明过。

因此,如果想避免在函数内部的var声明,使变量赋值具有模块级的效果,可以在模块头部增加对该变量的赋值,这样该变量将只在模块头部,而不再在函数头部产生var声明。

如果在函数内部希望屏蔽外部的声明怎么办?借助回引号标记法产生原始js代码。

示例:

x = 0

f  = () ->

  `var x` #如无此行,下一赋值直接修改外部的x

  x = 1

f()

console.log x #如果没有`var x`则显示0,否则显示1.

转载于:https://www.cnblogs.com/chaosim/p/module_var_and_mask_it.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值