Código JavaScript a continuación.
class Test{ testMethod1() { console.log('hello world'); } testMethod2() { this.testMethod1(); } } let t = new Test(); t.testMethod1(); t.testMethod2(); Ya sé que cuando se llama a un método desde otro método en la misma clase, se necesita un puntero this . Pero, ¿por qué JavaScript necesita esto? Parece que cpp, java y otros lenguajes orientados a objetos no necesitan this .
this en este contexto significa que se refiere al objeto actual que acaba de ser instanciado por new . Sin this , el compilador entenderá que te refieres a una función de ámbito externo.
function testMethod1() { console.log('outer world'); } class Test{ testMethod1() { console.log('hello world'); } testMethod2() { testMethod1(); //removed `this` } } let t = new Test(); t.testMethod1(); //hellow world t.testMethod2(); //outer world No estoy seguro de dónde está señalando que Java u otros lenguajes de programación orientados a objetos no necesitan this . Puedes probar este patio de recreo para Java.