Unityscript类扩展变量范围

时间:2018-01-24 20:59:08

标签: javascript oop

我不是那些精通JavaScript的人,而且我有一个范围问题,我无法找到参考:

class a
{
  var CommonNameVar;
}

class b extends a
{
  var CommonNameVar;

  function Something(){
     CommonNameVar = "somevalue"; 
  }
}

我如何在b中具体引用CommonNameVar而不是a(即引用特定范围的变量)?

事实证明我也不熟悉unityscript而且我犯了一个相当重要的错误,假设只是因为它在文件上有一个.js,这就是javascript(听起来像Bob的旧草图)纽哈特)。

我会为上下文发布一个正确格式化的新问题,并声明这个问题已经死了。

1 个答案:

答案 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