【问题标题】:Designing 'plugins' - How to pass an object method in JSON?设计“插件” - 如何在 JSON 中传递对象方法?
【发布时间】:2011-02-22 21:12:21
【问题描述】:

我不确定这是否可行,或者更重要的是好的设计。 对两者的反馈表示赞赏。

我们有一个通过“插件”添加功能元素的前端。 插件设计是一个带有一些数据和一些方法的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中有什么方法可以 不知何故将此方法设为静态?
  • 该方法是否应该只在外面使用 为了方便起见插件?

谢谢。

【问题讨论】:

    标签: javascript json plugins static-methods


    【解决方案1】:

    如果加载的每个插件都是静态的(不包含变化的数据),则将它们作为脚本而不是 JSON 加载。如果存在动态数据,则将动态数据与静态函数分开,仅以 JSON 格式发送数据。

    【讨论】:

      猜你喜欢
      • 2016-08-10
      • 2013-10-15
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多