Loading ...

把_C函数用在自定义类成员函数上时,没有获取到正确的this

Author: lightring, Created: 2019-08-11 14:47:22, Updated: 2019-08-11 14:50:47

试运行以下代码:

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);
}

打印结果为:

  • my name
  • null

即 _C(myobj.printMyName)调用时 , 函数内的 this 并没有指向 myobj 对象 请问如何解决这个问题?


More

小小梦 ``` function MyClass() { var self = {} self.m_name = "My Name" self.printMyName = function () { Log(self.m_name) return true } return self } function main() { var myobj = MyClass() myobj.printMyName() _C(myobj.printMyName) } ```

小小梦 原因是 myobj.printMyName 传入 _C 后, this 指针指向 变了。导致的问题。

lightring 多谢!