2011-02-22 64 views
0

我不確定這是可能的,或者可能是更好的設計。 雙方的反饋讚賞。設計'插件' - 如何在JSON中傳遞對象方法?

我們有一個前端,我們通過'插件'添加功能元素。 插件設計是與一些數據,並如下面一些方法javascript對象:

function FeedbackPlugin(){ 
    return { 
    name: "Feedback", 
    help: "Provide feedback on any element of the site", 
    ...  
    showForm : function(_feedbackType) { 
     ... 
    }, 
    ... 
    messageCallbacks: [{callbackKey:"ProvideFeedback",callbackHandler:showForm}]  
    }; 
} 

框架負載的每一個插件,然後通過messageCallbacks迭代以配合彗星事件的插件方法。

可悲的是,上面的代碼不起作用。當框架嘗試註冊方法時,插件的showForm方法不在範圍內。我想我們可能需要傳遞一個指向現有的插件實例的showForm方法...

  • 有沒有在JavaScript中 任何方式以某種方式使這種方法靜態?
  • 爲方便起見,該方法應該只在 以外的插件中生存?

謝謝。

回答

0

如果要加載的每個插件都是靜態的(不包含變化的數據),則將它們加載爲腳本而不是JSON。如果存在動態數據,則將動態數據與靜態函數分開,並僅將數據作爲JSON發送。

相關問題