2
关注
1
关注者

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

创建于: 2019-08-11 14:47:22, 更新于: 2019-08-11 14:50:47
comments   3
hits   1215

试运行以下代码:

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 对象 请问如何解决这个问题?

更多内容
全部留言
avatar of 发明者量化-小小梦
发明者量化-小小梦
``` 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) } ```
2019-08-12 08:56:36
avatar of 发明者量化-小小梦
发明者量化-小小梦
原因是 myobj.printMyName 传入 _C 后, this 指针指向 变了。导致的问题。
2019-08-14 16:56:44
avatar of lightring
lightring
多谢!
2019-08-12 21:34:10