В разнице классов между использованием `this.x` и просто `x` для доступа к полю?

В мануале по haxe в разделе про экземпляры классов приведен следующий пример кода (упрощенный мной):

class Point {
  var x : Int;
  public function new(x) {
    this.x = x;
  }
}

В разделе о полях класса они перечисляют следующее:

class Main {
  static var member:String = "bar";
  public static function main() {
    member = "foo";
  }
}

В предыдущем примере они используют this для доступа к полю x, но в следующем примере этого не делают. Является ли этот код эквивалентным или в нем есть какие-то нюансы?


person swissnetizen    schedule 09.08.2017    source источник


Ответы (1)


В первом примере в функции передается переменная x, имя которой совпадает с именем члена класса. Итак, this.x относится к члену класса. Вы всегда можете использовать это для ссылки на членов класса, но обычно оно опускается, если у нас нет такого случая, как в первом примере, где нам нужно явно ссылаться на член класса.

person Andrew    schedule 09.08.2017