Khi sử dụng hàm _C trên các hàm thành viên của lớp tùy chỉnh, bạn không nhận được đúng this

Tác giả:ánh sáng, Tạo: 2019-08-11 14:47:22, Cập nhật: 2019-08-11 14:50:47

Hãy thử chạy mã sau đây:

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

Kết quả in là:

  • tên tôi
  • không

Khi gọi _C ((myobj.printMyName), this trong hàm không trỏ đến đối tượng myobj Xin hỏi, làm thế nào để giải quyết vấn đề này?


Thêm nữa

Giấc mơ nhỏ` ` hàm MyClass (() { var self = {} self.m_name = "Tên của tôi" self.printMyName = function () { Log ((self.m_name) trả về true } trả về bản thân } chức năng chính (() { var myobj = MyClass() myobj.printMyName() _C ((myobj.printMyName) } ` `

Giấc mơ nhỏNguyên nhân là myobj.printMyName đã chuyển vào _C, chỉ dẫn this đã thay đổi. Nguyên nhân là vấn đề.

ánh sángCảm ơn!