a = new function() {
this.x=2;
B=function() {
this.y=super.x;
}
this.b=new B();
}
alert(a.b.y); // Expecting 2
在上面,super
中存在解析错误。在定义B类时如何访问x的值?
答案 0 :(得分:1)
这有效,但我不确定您的代码是否正确
a = new function() {
var x=2;
B=function() {
this.y=x;
}
this.b=new B();
}
alert(a.b.y); //alerts 2
alert(a.x) //alert undefined becuase x is private
在任何情况下,javascript中都没有super
,如果您阅读here,您可以看到如何通过超级方法在javascript中实现inehritance
答案 1 :(得分:0)
发现执行此操作的最佳方法是将'this'作为嵌套类的构造函数中的参数传递,如下所示 -
a = new function() {
this.x=2;
B=function(sup) {
this.y=sup.x;
}
this.b=new B(this);
}
alert(a.b.y); // Displays 2