Quando usamos a função _C em funções de membros de classes personalizadas, não obtemos o correct this

Autora:relâmpago, Criado: 2019-08-11 14:47:22, Atualizado: 2019-08-11 14:50:47

Tente executar o seguinte código:

function MyClass()
{
    this.m_name = "my name";
}

MyClass.prototype.printMyName = function()
{
    Log(this.m_name);
    return true;
}

function main() {
    var myobj = new MyClass();
    myobj.printMyName();
    _C(myobj.printMyName);
}

O resultado impresso é:

  • O meu nome
  • zero

Quando o _C ((myobj.printMyName) é chamado, o this dentro da função não aponta para o objeto myobj. Como resolver esse problema?


Mais.

Sonhos pequenos- Não. função MyClass (() { Var self = {} self.m_name = "Meu nome" - Não. self.printMyName = função () { Registo (self.m_name) retornar verdadeiro - Não. - Não. Retorno de auto - Não. função principal (() { var myobj = MyClass (() myobj.printMyName (() _C ((myobj.printMyName) - Não. - Não.

Sonhos pequenosA causa é que o myobj.printMyName foi enviado para o _C, e o this apontado para o ≪ foi alterado≫ causando o problema≫.

relâmpagoObrigado!