2012-11-15 77 views
1

我有以下代碼,我嘗試用一​​個名爲Modal的類替換createModal。然而,當我嘗試這個打字稿給我的錯誤,並表示,「鏈接不會在當前範圍中不存在」:如何在類函數內部訪問類變量?

module Admin.MyAccount.Access { 

    export function createModal(link: Link) { 
     link.Modal.$Modal = $.modal({ 
      resizeOnLoad: true 
     }); 
     link.Modal.$Modal.applyTemplateSetup() 
    } 

    export class Modal { 
     link: Link; 
     constructor (link: Link) { 
      this.link = link; 
     } 
     create() { 
      link.Modal.$Modal = $.modal({  // < Error here 
       resizeOnLoad: true 
      }); 
      link.Modal.$Modal.applyTemplateSetup() // < Error here 
     } 

    } 

} 

當我使用的功能我調用該函數是這樣的:

 createModal(link); 

我在這裏做錯了什麼?爲什麼我無法訪問create()中的鏈接?我也可以用靜態函數來做到這一點。這樣做會更容易一些,因爲我不需要呼叫新建Modal的新實例?

+0

難道你不應該只是添加**這**鏈接? this.link – Kao

+0

@Kao - 謝謝你是對的。至於我的問題的第二部分。使這個靜態類有什麼好處嗎? –

回答

1

您需要將this添加到調用中,因爲您需要訪問類作用域。


只要選擇它或不使用 static歸結爲你如何使用該對象。你有多個對象的實例,但只需要它的一個副本?如果是這樣,請使用 static

這意味着你所有的模態將被連接在一起,並且總是隻能有一個。

Using static in javascript

靜態函數(即只有一個功能的副本沒有 無論你創建多少個對象),可用於公用 功能真正派上用場。

+0

感謝您的幫助。 –