사용자 정의 클래스 멤버 함수에서 C 함수를 사용했을 때 this를 제대로 얻지 못했습니다.

저자:번개, 2019-08-11 14:47:22, 업데이트: 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);
}

이 글의 인쇄 결과는 다음과 같습니다.

  • 내 이름
  • null

즉, _C ((myobj.printMyName) 를 호출할 때 함수 안의 this는 myobj 객체를 가리키지 않습니다. 이 문제를 어떻게 해결할 수 있을까요?


더 많은

작은 꿈` ` 함수 MyClass (() { var self = {} self.m_name = "내 이름" self.printMyName = function () { 로그 (self.m_name) true 를 반환 } 자기를 반환 } 함수 main() { var myobj = MyClass (내 클래스) myobj.printMyName() _C(myobj.printMyName) } ` `

작은 꿈myobj.printMyName가 _C로 전송된 후 this 지표가 가리키기 때문에 문제가 생겼습니다.

번개감사합니다!