我不是那些精通JavaScript的人,而且我有一个范围问题,我无法找到参考:
class a
{
var CommonNameVar;
}
class b extends a
{
var CommonNameVar;
function Something(){
CommonNameVar = "somevalue";
}
}
我如何在b中具体引用CommonNameVar
而不是a(即引用特定范围的变量)?
事实证明我也不熟悉unityscript而且我犯了一个相当重要的错误,假设只是因为它在文件上有一个.js,这就是javascript(听起来像Bob的旧草图)纽哈特)。
我会为上下文发布一个正确格式化的新问题,并声明这个问题已经死了。
答案 0 :(得分:1)
您无法将CommonNameVar
隐藏在声明的范围内。但是,要使其b
可用,您需要将其创建为this.CommonNameVar
,以便它成为this
一个实例属性并且将继承,否则,它只是一个局部变量并且不会继承。
a
关键字可确保您始终获得与该实例关联的属性的值。
而且,你的语法需要一些工作,因为类在其中声明属性,而不仅仅是#34;松散"元件。
因此,使用下面的代码,当this
的实例生成时,CommonNameVar
将引用一个实例,something
将引用b
以及{的实例{1}}已完成,b.CommonNameVar
也将something
(因为继承),直到/除非执行b.Something()
,在这种情况下b.CommonNameVar
将为somevalue
1}},而a.CommonNameVar
将保持something
。
class a {
this.CommonNameVar = "something";
}
class b extends a {
this.Something = function() {
this.CommonNameVar = "somevalue";
}
}
this
可能会变得更加棘手,具体取决于您的代码结构,您可以阅读 here 。