有没有办法在Coffeescript中访问父函数中使用的局部变量?
例如,从B类知道testLocal的值:
class A
constructor: ->
@init()
init: ->
testLocal = 56
class B extends A
init: ->
super
alert testLocal
new B()
答案 0 :(得分:0)
在对@
testLocal
符号
class A
constructor: ->
@init()
init: ->
@testLocal = 56
class B extends A
init: ->
super
alert @testLocal
new B()
在您的原始示例中,相关的javascript如下所示:
A.prototype.init = function() {
var testLocal;
return testLocal = 56;
};
return A;
B.prototype.init = function() {
B.__super__.init.apply(this, arguments);
return alert(testLocal);
};
添加@
后,您会收到此信息:
A.prototype.init = function() {
return this.testLocal = 56;
};
B.prototype.init = function() {
B.__super__.init.apply(this, arguments);
return alert(this.testLocal);
};
@
向引用添加this.
,将变量移出局部范围,并进入coffeescript puesdo类。