backbone.js - 辅助函数在 Backbone 中的位置

标签 backbone.js helper organization code-organization

我有一些这样的功能:

function killOrphans(str) {
    return str.replace(/\s([\dwuioaz]{1})\s/gi, ' $1\u00a0');
}

这通常是一个辅助函数,用于从行尾删除单字母单词(孤立词)(波兰语排版要求这样做)。

问题:您如何对待此类函数的库?全局范围内的模块?扩展 jQuery?扩展 String、Array 等的原型(prototype)? (我不认为这是一个好主意......)。我想我会朝着下划线的方向创建一个模块,但我很高兴听到现实生活中的例子来说明你的方法。

亚当

最佳答案

在我的项目中,我使用了多种辅助函数策略。

View 或模型上的额外方法。

var MyView = Backbone.View.extend({
  initialize: function(){...},
  render: function(){...},
  helper: function(){...}
});

使用辅助模块。

var myHelpers = {
  foo: function(){...},
  bar: function(){...},
  baz: function(){...}
};

扩展现有库。

jQuery.fn.foo = function(){...};

使用 IIFE (最适合您想要保密的功能)

var MyView = Backbone.View.extend({
  initialize: function(){...},
  render: function(){...},
  myMethod: (function(){
    function helper(){...}
    return function(){
      // do stuff here, using helper()
    }
  })()
});

此外,如果您没有使用自动提供模块系统的node.js,那么值得使用一些策略,例如 browserifyrequirejs ,以合理的方式导出和导入模块,而不是让所有内容都卡在全局命名空间之外。

关于backbone.js - 辅助函数在 Backbone 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21338588/

相关文章:

node.js - pg-promise 助手 : optionnal fields in insert and multiple-update

Delphi 助手作用域

yii - Yii 2 中的应用程序文件重组

namespaces - 命名空间经验法则

javascript - 在现有集合中创建新集合

php - 如何从 joomla 1.5 模块中的另一个表获取数据?

javascript - 为什么 new 关键字不创建 Router 类的唯一实例?

c# - 在 C# 中组织 gui 代码

javascript - 按字母顺序对 Backbone 集合进行排序

javascript - 主干 View 事件绑定(bind)较晚