在嵌套函数中引用类对象时出现问题
Trouble referencing class object inside a nested function
我正在尝试用coffeescript创建一个类,我几乎做到了。我的问题是,我想为类的整个范围创建几个变量,但我不知道如何在嵌套函数中使用它们。@相当于"this。",但是我希望能够从类内的任何位置获取这些构造函数属性。
示例:
class CoffeeScriptClass
constructor: (@foo) ->
_sampleFunction: ->
$.each BigArray, (index, NestedArray) ->
$.each NestedArray, (index, widget) ->
## I'd like @foo to reference the constructor value
widget = @foo
return
return
return
这有道理吗?我确实在努力保持OO Javascript的整洁和有序,但我在coffescript的范围界定部分遇到了困难。我很乐意为班上其他同学提供任何重构/建议。谢谢大家。
您需要确定内部函数的范围:
class CoffeeScriptClass
constructor: (@foo) ->
_sampleFunction: ->
$.each BigArray, (index, NestedArray) => // keep parent scope
$.each NestedArray, (index, widget) => // keep parent scope
## I'd like @foo to reference the constructor value
widget = @foo
return
return
return
以下是编译后的JS,显示了为什么这样做:
var CoffeeScriptClass;
CoffeeScriptClass = (function() {
function CoffeeScriptClass(foo) {
this.foo = foo;
}
CoffeeScriptClass.prototype._sampleFunction = function() {
var _this = this; // reference to the class is maintained
$.each(BigArray, function(index, NestedArray) {
$.each(NestedArray, function(index, widget) {
widget = _this.foo;
});
});
};
return CoffeeScriptClass;
})();
相关文章:
- JavaScript代码问题:我正在将对象转换为数组
- jquery$(this)对象缺少问题
- JavaScript对象继承问题
- 在对象中添加方法时出现问题
- 基本对象/原型语法问题
- Javascript对象文字,POST问题
- 使用Javascript对象为具有两个背景图像的DIV设置样式时出现问题
- 使用.map解析JSON对象时出现问题
- 类中对象的奇怪问题(John Resig简单继承)
- 访问Javascript对象-Node.js的作用域问题
- JavaScript对象中存在数组的问题
- 递归Javascript对象是否会导致任何问题(内存泄漏)
- JavaScript—父类和子类/对象的此问题
- 我该如何解决这个问题;参考网格”;在JavaScript中完成的对象数
- jQuery拖动到相对位置的可排序列表中时出现可拖动辅助对象位置问题
- 尝试将变量传递到对象中时的作用域问题'的方法构造函数
- 创建jQuery对象时出现问题
- 面向对象,控制器问题,初学者Javascript
- 从 JSON 对象获取数据时出现问题
- Rails的问题,haml + javascript在字段对象的模糊