noUselessThisAlias (since v1.0.0)
Diagnostic Category: lint/complexity/noUselessThisAlias
Sources:
- Inspired from: 
@typescript-eslint/no-this-alias 
Disallow useless this aliasing.
Arrow functions inherits this from their enclosing scope;
this makes this aliasing useless in this situation.
Examples
Section titled ExamplesInvalid
Section titled Invalidclass A {    method() {        const self = this;        return () => {            return self;        }    }}code-block.js:3:15 lint/complexity/noUselessThisAlias  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  ✖ This aliasing of this is unnecessary.
  
    1 │ class A {
    2 │     method() {
  > 3 │         const self = this;
      │               ^^^^^^^^^^^
    4 │         return () => {
    5 │             return self;
  
  ℹ Arrow functions inherits `this` from their enclosing scope.
  
  ℹ Safe fix: Use this instead of an alias.
  
    1 1 │   class A {
    2 2 │       method() {
    3   │ - ········const·self·=·this;
    4 3 │           return () => {
    5   │ - ············return·self;
      4 │ + ············return·this;
    6 5 │           }
    7 6 │       }
  
Valid
Section titled Validclass A {    method() {        const self = this;        return function() {            this.g();            return self;        }    }}