2017-01-14 23 views
6

Tôi muốn gọi hàm func2 từ bên trong chức năng mẫu của hàm func1. Ai đó có thể đề xuất một cách để đạt được điều đó ?.Làm cách nào để gọi một hàm từ bên trong hàm lồng nhau trong bản ghi?

class A 
{ 
    public func1() 
    { 
    let sample = function() 
        { 
        //call func2... but how? 
        } 
    } 
    public func2() 
    { 

    } 
} 

Cảm ơn trước

+1

'this.func2()'? –

+1

@Benjamin: Phụ thuộc vào điều 'này' đề cập đến bên trong' mẫu' (tức là cách 'mẫu' được gọi). –

+0

nop .... phạm vi của điều này chỉ trong func1 ... không nằm trong hàm mẫu (lồng nhau). – user3107338

Trả lời

12

Sử dụng các từ khóa this với các ký hiệu arrow chức năng như thế này:

class A 
{ 
    public func1() 
    { 
     let sample =() => 
     { 
     this.func2(); 
     } 
    } 
    public func2() 
    { 

    } 
} 

Bí quyết là sử dụng arrow chức năng, bởi vì arrow chức năng thay đổi định nghĩa của this là phiên bản của class thay vì phạm vi hiện tại.Bạn có thể đọc thêm here

+1

Điều đó phụ thuộc vào những gì 'this' đề cập đến bên trong' mẫu'. –

+0

nop .... phạm vi 'this' chỉ trong func1 ... không nằm trong hàm mẫu (lồng nhau). – user3107338

+0

Tôi đã cập nhật câu trả lời để khắc phục điều đó bằng cách sử dụng chức năng 'mũi tên' sẽ sử dụng phạm vi chính xác. –

Các vấn đề liên quan