全局命名空间和这个在coffeescript循环
global namespace and this in coffeescript loops
在此代码:
class MyClass
myfun: (arg) ->
for x in arg
do ->
...
循环外部的作用域是MyClass,而在循环内部(它是一个匿名函数)作用域更改为DOMWindow。
为什么会发生这种情况?我该如何预防呢?我的主要问题是,如果MyClass类的作用域发生了变化,我就不能访问MyClass类中的其他函数。
谢谢
使用粗箭头语法将a函数绑定到当前上下文:
class MyClass
myfun: (arg) ->
for x in arg
do =>
...
发生这种情况是因为do
关键字只调用函数而没有任何上下文,所以它默认为window
对象。
do -> ...
等价于
(function() {
...
}());
相关文章:
- 使用 CoffeeScript 的类和 jquery.transit 创建一个回调循环
- 如何将 JavaScript forEach 循环/函数转换为 CoffeeScript
- 在 Coffeescript 中将 while 循环转换为 for 循环
- Coffeescript/Javascript 循环未执行
- 在 Coffeescript 中强制迭代 for 循环
- 如何重写从 JavaScript 到 coffeescript 的更复杂的 for 循环
- CoffeeScript类-循环遍历继承对象的数组
- 如何在CoffeeScript中使用减法进行for循环
- 如何在CoffeeScript的内部开始求值中使用外部索引嵌套循环
- 在coffeescript中循环操作
- 带有循环的coffeescript压痕
- 为什么CoffeeScript以这种方式编译for循环
- 在coffeescript中使用带循环的单行语句
- 如何在Coffeescript循环中使用settimeout ?
- Coffeescript重试循环不起作用
- 在Coffeescript: JSON中使用karma出错.串化循环结构序列化
- 通过Node.js require和CoffeeScript中的类解决循环依赖
- CoffeeScript for循环不能执行多个操作
- 嵌套的骨干模型/循环数组在CoffeeScript
- 全局命名空间和这个在coffeescript循环